著录项信息
专利名称 | 通过服务器给多台客户机自动安装应用软件的方法 |
申请号 | CN02153940.5 | 申请日期 | 2002-12-06 |
法律状态 | 授权 | 申报国家 | 中国 |
公开/公告日 | 2004-06-23 | 公开/公告号 | CN1506812 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F9/445 | IPC分类号 | G;0;6;F;9;/;4;4;5查看分类表>
|
申请人 | 联想(北京)有限公司 | 申请人地址 | 北京市海淀区上地创业路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 联想(北京)有限公司 | 当前权利人 | 联想(北京)有限公司 |
发明人 | 王嵩 |
代理机构 | 中科专利商标代理有限责任公司 | 代理人 | 周国城 |
摘要
本发明属于程序的装载或启动技术领域,是一种作为软件分发中通过服务器给多台客户机安装应用软件的方法。它包括安装键盘和鼠标钩子,执行需安装的软件的安装程序,将安装程序执行过程中鼠标或键盘的操作信息记录到脚本文件中和针对脚本文件运行脚本解释程序的步骤,从而通过计算机网络将应用软件安装在指定的各客户计算机上。本发明解决了现有技术中脚本文件需要手工输入,只能处理简单的鼠标键盘操作,对复杂的操作容易出错等问题。本发明可对应用软件安装过程进行录制,不必手工输入脚本进行操作,对于大批机器安装应用软件来说,将大大减少工作量,特别适合于通过服务器给多台客户机快捷方便安装应用软件。
1.一种通过服务器给多台客户机自动安装应用软件的方法,其特征在于包括以下步骤:
a.录制脚本文件
a1.在计算机中安装键盘钩子或鼠标钩子、或键盘钩子和鼠标钩子,以便获取键盘 和鼠标的操作信息;
a2.执行需安装的应用软件的安装程序;
a3.将安装程序执行过程中,键盘钩子或鼠标钩子、键盘钩子和鼠标钩子获得的键 盘的操作信息或鼠标的操作信息、或键盘和鼠标的操作信息记录到脚本文件中,
b.将脚本解释程序、所述应用软件和脚本文件放到服务器上,
c.在服务器端针对所述脚本文件运行所述脚本解释程序,从而通过计算机网络将所述 应用软件安装在指定的各客户计算机上。
2、根据权利要求1所述的通过服务器给多台客户机自动安装应用软件的方法,其特 征在于:所述鼠标或键盘的操作信息包括安装应用程序所出现的有键盘或鼠标动作的窗 口数目、从开始执行程序安装到第一个窗口出现的初始化时间、所执行动作窗口的窗口 名和特征字、在该窗口所执行键盘的虚拟键值或鼠标值以及所执行动作的时间,以及区 分是键盘还是鼠标操作的标志。
3、根据权利要求1所述的通过服务器给多台客户机自动安装应用软件的方法,其特 征在于:所述步骤a3进一步包括:
把安装过程中的有键盘或鼠标操作的窗口数目和程序启动到第一个有键盘或鼠标动 作的窗口时间存到脚本文件中;
判断在出现的窗口上是键盘操作还是鼠标操作,若是键盘操作,则把键盘操作的标 志、窗口标题、此窗口的按键值、按键状态、此窗口按键与第一个按键的时间间隔和此 窗口的特征字存到脚本文件,若是鼠标操作,则把鼠标操作的标志、窗口标题、此窗口 的鼠标左键按键值、鼠标动作的x坐标、鼠标动作的y坐标、此窗口按键与第一个按键 的时间间隔、此窗口的特征字存到脚本文件。
4、根据权利要求1所述的通过服务器给多台客户机自动安装应用软件的方法,其特征 在于:在所述步骤a3中,用临时文件记录安装程序启动时间和第一个窗口出现的时间,以 计算初始化时间。
5、根据权利要求4所述的通过服务器给多台客户机自动安装应用软件的方法,其特征 在于:所说的临时文件还记录有包括路径在内的安装程序名称和包括路径在内的脚本文件 名称。
6、根据权利要求2所述的通过服务器给多台客户机自动安装应用软件的方法,其特征 在于:所说的特征字由执行动作窗口的有效子窗口的窗口标题的部分字组成,所说的有效 子窗口是指执行动作窗口中按自然顺序排列的按钮类或静态文本类子窗口的前5个子窗 口,若不到5个则全取;所说的窗口标题的部分字是指窗口标题的前18个字符,若不足18 个,则全取。
7、根据权利要求2所述的通过服务器给多台客户机自动安装应用软件的方法,其特征 在于:所说的特征字由执行动作窗口中按自然顺序排列的按钮类或静态文本类子窗口的前 几个组成。
8、根据权利要求1所述的通过服务器给多台客户机自动安装应用软件的方法,其特征 在于:所说的脚本解释程序是一个命令行形式的带参数执行程序,其参数包括所述应用软 件和脚本文件的文件名、随安装客户计算机数目而不同的延时系数。
技术领域\n本发明属于程序的装载或启动技术领域,特别是作为软件分发中通过服务器给多台客户机 自动安装应用软件的方法。\n背景技术\n在多台计算机安装同一应用软件时,若用安装盘逐一安装是比较费时的。而事先把应用 软件的安装过程录制成脚本文件后放在服务器上,同时把应用软件也放在服务器上,然后安装 时在服务器端通过做好的脚本解释程序读此脚本文件的内容,并执行其中的操作过程,便可把 该应用软件自动安装在各个客户机上。这样将会节省很多时间,而且在安装过程中客户机端不 需要人监控,也不需要人去执行按键与鼠标操作。在视窗操作系统下,微软公司对软件自动安 装执行所用的方法是Scriptit(一种脚本语言),它是微软公司提供的一个工具,可在微软公司 的网站得到,Scriptit是一个命令行的程序,通过读取一个脚本文件执行应用程序,脚本文件中 包括对应用程序所执行的键盘鼠标等操作。其缺点是它没有录制过程,脚本文件需要根据规则 手工输入,这就要求对脚本文件的规则格式等有深入的了解。此外它只能处理简单的鼠标键盘 操作,对复杂的操作容易出错。\n发明内容\n为了克服上述缺点,本发明的目的是提供一种通过服务器给多台客户机自动安装应用软件 方法的方法,它不需手工输入脚本文件,可自动把应用软件安装过程中的键盘鼠标操作录制成 脚本文件,此后再用脚本解释程序读取此脚本文件,便可对该应用软件进行自动安装。\n为完成上述发明目的,本发明采用的技术方案为:一种通过服务器给多台客户机自动安 装应用软件的方法,其包括以下步骤:\na.录制脚本文件\na1.在计算机中安装键盘和/或鼠标钩子,以便获取键盘和鼠标的操作信息;\na2.执行需安装的应用软件的安装程序;\na3.将安装程序执行过程中,键盘和/或鼠标钩子获得的鼠标和/或键盘的操作信息记录到 脚本文件中,\nb.将脚本解释程序、所述应用软件和脚本文件放到服务器上,\nc.在服务器端针对所述脚本文件运行所述脚本解释程序,从而通过计算机网络将所述应用 软件安装在指定的各客户计算机上。\n在本发明的具体实例中;\n所述鼠标或键盘的操作信息可包括安装应用程序所出现的有键盘或鼠标动作的窗口数 目、从开始执行程序安装到第一个窗口出现的初始化时间、所执行动作窗口的窗口名和特征 字、在该窗口所执行键盘的虚拟键值或鼠标值以及所执行动作的时间,以及区分是键盘还是 鼠标操作的标志。\n将安装程序执行过程中鼠标或键盘的操作信息记录到脚本文件中的步骤可进一步包括: 把安装过程中的有键盘或鼠标操作的窗口数目和程序启动到第一个有键盘或鼠标动作的窗口 时间存到脚本文件中,判断在出现的窗口上是键盘操作还是鼠标操作,若是键盘操作,则把 键盘操作的标志、窗口标题、此窗口的按键值、按键状态、此窗口按键与第一个按键的时间 间隔和此窗口的特征字存到脚本文件;若是鼠标操作,则把鼠标操作的标志、窗口标题、此 窗口的鼠标左键按键值、鼠标动作的x坐标、鼠标动作的y坐标、此窗口按键与第一个按键 的时间间隔、此窗口的特征字存到脚本文件的步骤。\n在该步骤中,可用临时文件记录安装程序启动时间和第一个窗口出现的时间,以计算初 始化时间。该临时文件还记录有包括路径在内的安装程序名称和包括路径在内的脚本文件名 称。\n上述特征字由通过取执行动作窗口的有效子窗口的窗口标题的部分字组成,所说的有效子 窗口是指执行动作窗口中按自然顺序排列的按钮类或静态文本类子窗口的前5个子窗口,若不 到5个则全取;所说的窗口标题的部分字是指窗口标题的前18个字符,若不足18个,则全取。\n本发明克服了现有技术中需要手工编写脚本文件的缺点,只需在自动安装应用软件前执 行脚本录制程序,把应用软件的安装过程录成脚本文件,以后只需通过脚本解释程序即可执 行安装应用程序,具有明显的积极效果。通过脚本录制,可对应用软件安装过程进行录制, 不必手工输入脚本进行操作,只要录制过程正确,应用软件以后再安装时通过脚本解释程序 就可自动进行,对于大批机器安装应用软件来说,可大大减少工作量。\n附图说明\n图1是本发明的录制程序流程图;\n图2是本发明安装应用软件的流程图。\n下面结合附图和具体实施方式对本发明作进一步详细的说明。\n具体实施方式\n本发明采取钩子技术进行脚本录制。钩子实际上是一个处理消息的程序段或称函数,通过 系统调用可把它挂入系统。每当特定的消息发出,在其没有到达目的窗口前,钩子程序就先捕 获该消息,亦即钩子函数先得到控制权。这时钩子函数既可以加工处理该消息,也可以不作处 理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子 链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制 权。钩子的种类很多,每种钩子可以截获并处理相应的消息,如键盘钩子可以截获键盘消息, 外壳钩子可以截取、启动和关闭应用程序的消息等。\n本发明的基本思想是使用键盘与鼠标的钩子函数对键盘和鼠标的动作进行录制,本发明安 装两个钩子:一个是用于记录鼠标输入的鼠标钩子,另一个是用于记录键盘输入的键盘钩子, 所记录的动作内容存入脚本文件。脚本文件记录安装过程中的各个窗口标题及该窗口的一些特 征字,还记录在该窗口所进行操作的键盘和鼠标操作的键值和时间,以便于脚本解释程序使用, 其中的安装及卸载钩子函数部分做成动态连接库。\n参见图1所示的本发明的主流程图。首先在服务器计算机中执行录制程序,待显示器上出 现录制程序的对话框界面后,在其中选择欲安装的应用程序名和录制的脚本文件名,选择开始 录制后,在windows环境下,安装名为KeyboardProc的键盘钩子函数和名为MouseProc的鼠标钩 子函数,之后执行应用软件的安装程序,用键盘和鼠标钩子将安装过程中的每一动作存入脚本 文件,直至录制完成。\n脚本文件记录的鼠标或键盘的信息包括:安装应用程序所出现的有键盘或鼠标动作的窗口 数目、从开始执行程序安装到第一个窗口出现的初始化时间、所执行的键盘或鼠标动作窗口的 窗口名和特征字、在该窗口所执行键盘的虚拟键值或鼠标值以及所执行动作的时间,以及区分 是键盘还是鼠标操作的标志等。\n本发明用临时文件记录安装程序启动时间和第一个窗口出现的时间,用于计算初始化时间, 临时文件还记录有安装程序名称和包括路径在内的脚本文件名称。\n特征字可由执行动作窗口的有效子窗口的窗口标题的部分字组成。在这里:所说的有效子 窗口是指执行动作窗口中按自然顺序排列的按钮类或静态文本类子窗口的前5个子窗口,若不 到5个,则全取;所说的窗口标题的部分字是指窗口标题的前18个字符,若不足18个,则全取。\n参见图2,脚本解释程序为带3个参数的命令行程序,通过带参数的命令行执行脚本解释程 序,参数应包括所安装程序的文件名、通过脚本录制方法录制的脚本文件名、随安装机器数目 不同的延时系数。\n在服务器执行安装程序,将脚本文件读入服务器内存,判断脚本文件中记录的窗口是否出 现,若出现则依次执行各个窗口的操作,如果所有窗口都运行完,则安装结束,若有记录的窗 口在一定的时间没有出现,则报错退出。\n下面以安装联想幸福五笔输入法为例,说明通过服务器给多台客户机自动安装应用软件 的方法。\n首先在服务器上运行脚本录制程序:在程序界面中选择所需制作脚本的应用软件及脚本 文件名→点开始录制按钮→在windows系统中安装名为KeyboardProc的键盘钩子函数和名为 MouseProc的鼠标钩子函数→执行应用软件的安装程序。\n之后脚本录制程序将执行以下操作:把安装过程中的有键盘和/或鼠标操作的窗口数目和 程序启动到第一个有键盘和/或鼠标动作的窗口时间存到脚本文件中;通过钩子函数判断在出 现的窗口上是键盘操作还是鼠标操作,若是键盘操作,则把键盘操作的标志、窗口标题、此 窗口的按键值、按键状态、此窗口按键与第一个按键的时间间隔和此窗口的特征字存到脚本 文件;若是鼠标操作,则把鼠标操作的标志、窗口标题、此窗口的鼠标左键按键值、鼠标动 作的x坐标、鼠标动作的y坐标、此窗口按键与第一个按键的时间间隔、此窗口的特征字存 到脚本文件。\n其中,以上键盘或鼠标的相关信息获得方式如下:窗口名、特征字可通过windows函数 GetWindowText获得;时间值通过windows函数GetTickCount获得;标志则由钩子函数直接 判断设定,此值为0则是键盘操作,为1则是鼠标操作;对于键盘操作,按键值通过钩子函 数KeyboardProc的参数WPARAM获得,按键状态通过钩子函数KeyboardProc的参数 LPARAM获得;对于鼠标操作,鼠标左键按键值通过钩子函数MouseProc的参数WPARAM 获得,鼠标动作的x坐标、y坐标通过钩子函数MouseProc的参数LPARAM获得;窗口数目 可通过在程序中设置一个变量(每增加一个有键盘或鼠标操作的窗口,此值加1)获得,初 始化时间可通过出现的窗口的时间差(其中时间值通过windows函数GetTickCount获得)来 获得。这些键盘或鼠标的相关信息值可通过windows函数WritePrivateProfileString存入脚本 文件。安装程序安装完成后,选择停止录制按钮,退出脚本录制程序,所需的脚本录制文件 录制完成。\n此后,在服务器命令行输入解释程序并执行,解释程序带三个参数:-e:后是联想幸福五 笔执行文件名-i:后面是录制的脚本文件名-n:后面是延时系数,解释程序将读取脚本文件的 内容,并根据安装过程中出现的窗口执行相应的键盘或鼠标操作,从而重新安装一遍幸福五笔。
法律信息
- 2021-11-12
未缴年费专利权终止
IPC(主分类): G06F 9/445
专利号: ZL 02153940.5
申请日: 2002.12.06
授权公告日: 2007.07.04
- 2007-07-04
- 2005-10-26
- 2004-06-23
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2002-05-29
|
2000-10-30
| | |
2
| |
2000-08-09
|
1999-12-14
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |