CN1324462C - 通过服务器给多台客户机自动安装应用软件的方法 - Google Patents
通过服务器给多台客户机自动安装应用软件的方法 Download PDFInfo
- Publication number
- CN1324462C CN1324462C CNB021539405A CN02153940A CN1324462C CN 1324462 C CN1324462 C CN 1324462C CN B021539405 A CNB021539405 A CN B021539405A CN 02153940 A CN02153940 A CN 02153940A CN 1324462 C CN1324462 C CN 1324462C
- Authority
- CN
- China
- Prior art keywords
- window
- keyboard
- mouse
- application software
- script file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Stored Programmes (AREA)
- Input From Keyboards Or The Like (AREA)
Abstract
本发明属于程序的装载或启动技术领域,是一种作为软件分发中通过服务器给多台客户机安装应用软件的方法。它包括安装键盘和鼠标钩子,执行需安装的软件的安装程序,将安装程序执行过程中鼠标或键盘的操作信息记录到脚本文件中和针对脚本文件运行脚本解释程序的步骤,从而通过计算机网络将应用软件安装在指定的各客户计算机上。本发明解决了现有技术中脚本文件需要手工输入,只能处理简单的鼠标键盘操作,对复杂的操作容易出错等问题。本发明可对应用软件安装过程进行录制,不必手工输入脚本进行操作,对于大批机器安装应用软件来说,将大大减少工作量,特别适合于通过服务器给多台客户机快捷方便安装应用软件。
Description
技术领域
本发明属于程序的装载或启动技术领域,特别是作为软件分发中通过服务器给多台客户机自动安装应用软件的方法。
背景技术
在多台计算机安装同一应用软件时,若用安装盘逐一安装是比较费时的。而事先把应用软件的安装过程录制成脚本文件后放在服务器上,同时把应用软件也放在服务器上,然后安装时在服务器端通过做好的脚本解释程序读此脚本文件的内容,并执行其中的操作过程,便可把该应用软件自动安装在各个客户机上。这样将会节省很多时间,而且在安装过程中客户机端不需要人监控,也不需要人去执行按键与鼠标操作。在视窗操作系统下,微软公司对软件自动安装执行所用的方法是Scriptit(一种脚本语言),它是微软公司提供的一个工具,可在微软公司的网站得到,Scriptit是一个命令行的程序,通过读取一个脚本文件执行应用程序,脚本文件中包括对应用程序所执行的键盘鼠标等操作。其缺点是它没有录制过程,脚本文件需要根据规则手工输入,这就要求对脚本文件的规则格式等有深入的了解。此外它只能处理简单的鼠标键盘操作,对复杂的操作容易出错。
发明内容
为了克服上述缺点,本发明的目的是提供一种通过服务器给多台客户机自动安装应用软件方法的方法,它不需手工输入脚本文件,可自动把应用软件安装过程中的键盘鼠标操作录制成脚本文件,此后再用脚本解释程序读取此脚本文件,便可对该应用软件进行自动安装。
为完成上述发明目的,本发明采用的技术方案为:一种通过服务器给多台客户机自动安装应用软件的方法,其包括以下步骤:
a.录制脚本文件
a1.在计算机中安装键盘和/或鼠标钩子,以便获取键盘和鼠标的操作信息;
a2.执行需安装的应用软件的安装程序;
a3.将安装程序执行过程中,键盘和/或鼠标钩子获得的鼠标和/或键盘的操作信息记录到脚本文件中,
b.将脚本解释程序、所述应用软件和脚本文件放到服务器上,
c.在服务器端针对所述脚本文件运行所述脚本解释程序,从而通过计算机网络将所述应用软件安装在指定的各客户计算机上。
在本发明的具体实例中;
所述鼠标或键盘的操作信息可包括安装应用程序所出现的有键盘或鼠标动作的窗口数目、从开始执行程序安装到第一个窗口出现的初始化时间、所执行动作窗口的窗口名和特征字、在该窗口所执行键盘的虚拟键值或鼠标值以及所执行动作的时间,以及区分是键盘还是鼠标操作的标志。
将安装程序执行过程中鼠标或键盘的操作信息记录到脚本文件中的步骤可进一步包括:把安装过程中的有键盘或鼠标操作的窗口数目和程序启动到第一个有键盘或鼠标动作的窗口时间存到脚本文件中,判断在出现的窗口上是键盘操作还是鼠标操作,若是键盘操作,则把键盘操作的标志、窗口标题、此窗口的按键值、按键状态、此窗口按键与第一个按键的时间间隔和此窗口的特征字存到脚本文件;若是鼠标操作,则把鼠标操作的标志、窗口标题、此窗口的鼠标左键按键值、鼠标动作的x坐标、鼠标动作的y坐标、此窗口按键与第一个按键的时间间隔、此窗口的特征字存到脚本文件的步骤。
在该步骤中,可用临时文件记录安装程序启动时间和第一个窗口出现的时间,以计算初始化时间。该临时文件还记录有包括路径在内的安装程序名称和包括路径在内的脚本文件名称。
上述特征字由通过取执行动作窗口的有效子窗口的窗口标题的部分字组成,所说的有效子窗口是指执行动作窗口中按自然顺序排列的按钮类或静态文本类子窗口的前5个子窗口,若不到5个则全取;所说的窗口标题的部分字是指窗口标题的前18个字符,若不足18个,则全取。
本发明克服了现有技术中需要手工编写脚本文件的缺点,只需在自动安装应用软件前执行脚本录制程序,把应用软件的安装过程录成脚本文件,以后只需通过脚本解释程序即可执行安装应用程序,具有明显的积极效果。通过脚本录制,可对应用软件安装过程进行录制,不必手工输入脚本进行操作,只要录制过程正确,应用软件以后再安装时通过脚本解释程序就可自动进行,对于大批机器安装应用软件来说,可大大减少工作量。
附图说明
图1是本发明的录制程序流程图;
图2是本发明安装应用软件的流程图。
下面结合附图和具体实施方式对本发明作进一步详细的说明。
具体实施方式
本发明采取钩子技术进行脚本录制。钩子实际上是一个处理消息的程序段或称函数,通过系统调用可把它挂入系统。每当特定的消息发出,在其没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数既可以加工处理该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。对每种类型的钩子由系统来维护一个钩子链,最近安装的钩子放在链的开始,而最先安装的钩子放在最后,也就是后加入的先获得控制权。钩子的种类很多,每种钩子可以截获并处理相应的消息,如键盘钩子可以截获键盘消息,外壳钩子可以截取、启动和关闭应用程序的消息等。
本发明的基本思想是使用键盘与鼠标的钩子函数对键盘和鼠标的动作进行录制,本发明安装两个钩子:一个是用于记录鼠标输入的鼠标钩子,另一个是用于记录键盘输入的键盘钩子,所记录的动作内容存入脚本文件。脚本文件记录安装过程中的各个窗口标题及该窗口的一些特征字,还记录在该窗口所进行操作的键盘和鼠标操作的键值和时间,以便于脚本解释程序使用,其中的安装及卸载钩子函数部分做成动态连接库。
参见图1所示的本发明的主流程图。首先在服务器计算机中执行录制程序,待显示器上出现录制程序的对话框界面后,在其中选择欲安装的应用程序名和录制的脚本文件名,选择开始录制后,在windows环境下,安装名为KeyboardProc的键盘钩子函数和名为MouseProc的鼠标钩子函数,之后执行应用软件的安装程序,用键盘和鼠标钩子将安装过程中的每一动作存入脚本文件,直至录制完成。
脚本文件记录的鼠标或键盘的信息包括:安装应用程序所出现的有键盘或鼠标动作的窗口数目、从开始执行程序安装到第一个窗口出现的初始化时间、所执行的键盘或鼠标动作窗口的窗口名和特征字、在该窗口所执行键盘的虚拟键值或鼠标值以及所执行动作的时间,以及区分是键盘还是鼠标操作的标志等。
本发明用临时文件记录安装程序启动时间和第一个窗口出现的时间,用于计算初始化时间,临时文件还记录有安装程序名称和包括路径在内的脚本文件名称。
特征字可由执行动作窗口的有效子窗口的窗口标题的部分字组成。在这里:所说的有效子窗口是指执行动作窗口中按自然顺序排列的按钮类或静态文本类子窗口的前5个子窗口,若不到5个,则全取;所说的窗口标题的部分字是指窗口标题的前18个字符,若不足18个,则全取。
参见图2,脚本解释程序为带3个参数的命令行程序,通过带参数的命令行执行脚本解释程序,参数应包括所安装程序的文件名、通过脚本录制方法录制的脚本文件名、随安装机器数目不同的延时系数。
在服务器执行安装程序,将脚本文件读入服务器内存,判断脚本文件中记录的窗口是否出现,若出现则依次执行各个窗口的操作,如果所有窗口都运行完,则安装结束,若有记录的窗口在一定的时间没有出现,则报错退出。
下面以安装联想幸福五笔输入法为例,说明通过服务器给多台客户机自动安装应用软件的方法。
首先在服务器上运行脚本录制程序:在程序界面中选择所需制作脚本的应用软件及脚本文件名→点开始录制按钮→在windows系统中安装名为KeyboardProc的键盘钩子函数和名为MouseProc的鼠标钩子函数→执行应用软件的安装程序。
之后脚本录制程序将执行以下操作:把安装过程中的有键盘和/或鼠标操作的窗口数目和程序启动到第一个有键盘和/或鼠标动作的窗口时间存到脚本文件中;通过钩子函数判断在出现的窗口上是键盘操作还是鼠标操作,若是键盘操作,则把键盘操作的标志、窗口标题、此窗口的按键值、按键状态、此窗口按键与第一个按键的时间间隔和此窗口的特征字存到脚本文件;若是鼠标操作,则把鼠标操作的标志、窗口标题、此窗口的鼠标左键按键值、鼠标动作的x坐标、鼠标动作的y坐标、此窗口按键与第一个按键的时间间隔、此窗口的特征字存到脚本文件。
其中,以上键盘或鼠标的相关信息获得方式如下:窗口名、特征字可通过windows函数GetWindowText获得;时间值通过windows函数GetTickCount获得;标志则由钩子函数直接判断设定,此值为0则是键盘操作,为1则是鼠标操作;对于键盘操作,按键值通过钩子函数KeyboardProc的参数WPARAM获得,按键状态通过钩子函数KeyboardProc的参数LPARAM获得;对于鼠标操作,鼠标左键按键值通过钩子函数MouseProc的参数WPARAM获得,鼠标动作的x坐标、y坐标通过钩子函数MouseProc的参数LPARAM获得;窗口数目可通过在程序中设置一个变量(每增加一个有键盘或鼠标操作的窗口,此值加1)获得,初始化时间可通过出现的窗口的时间差(其中时间值通过windows函数GetTickCount获得)来获得。这些键盘或鼠标的相关信息值可通过windows函数WritePrivateProfileString存入脚本文件。安装程序安装完成后,选择停止录制按钮,退出脚本录制程序,所需的脚本录制文件录制完成。
此后,在服务器命令行输入解释程序并执行,解释程序带三个参数:-e:后是联想幸福五笔执行文件名-i:后面是录制的脚本文件名-n:后面是延时系数,解释程序将读取脚本文件的内容,并根据安装过程中出现的窗口执行相应的键盘或鼠标操作,从而重新安装一遍幸福五笔。
Claims (8)
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所述的通过服务器给多台客户机自动安装应用软件的方法,其特征在于:所说的脚本解释程序是一个命令行形式的带参数执行程序,其参数包括所述应用软件和脚本文件的文件名、随安装客户计算机数目而不同的延时系数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021539405A CN1324462C (zh) | 2002-12-06 | 2002-12-06 | 通过服务器给多台客户机自动安装应用软件的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021539405A CN1324462C (zh) | 2002-12-06 | 2002-12-06 | 通过服务器给多台客户机自动安装应用软件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1506812A CN1506812A (zh) | 2004-06-23 |
CN1324462C true CN1324462C (zh) | 2007-07-04 |
Family
ID=34235370
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021539405A Expired - Fee Related CN1324462C (zh) | 2002-12-06 | 2002-12-06 | 通过服务器给多台客户机自动安装应用软件的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1324462C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100349120C (zh) * | 2005-03-16 | 2007-11-14 | 威盛电子股份有限公司 | 自动安装软件程序的方法 |
US8296385B2 (en) * | 2007-04-23 | 2012-10-23 | Lenovo (Singapore) Pte. Ltd. | Apparatus and method for selective engagement in software distribution |
CN102609301B (zh) * | 2012-01-13 | 2014-03-19 | 武汉噢易科技有限公司 | 给多个客户端快速部署软件的方法 |
CN103677766A (zh) * | 2012-08-31 | 2014-03-26 | 英业达科技有限公司 | 预录配置脚本以自动配置服务器的系统及其方法 |
CN102999368B (zh) * | 2012-12-14 | 2017-10-03 | 广东欧珀移动通信有限公司 | 移动终端中程序预先启动方法、装置及移动终端 |
CN104348868A (zh) * | 2013-08-02 | 2015-02-11 | 华为技术有限公司 | 节点安装处理方法、装置和系统 |
CN104021020A (zh) * | 2014-06-19 | 2014-09-03 | 南京新模式软件集成有限公司 | 一种软件自动安装的方法 |
CN104267993A (zh) * | 2014-09-30 | 2015-01-07 | 珠海市君天电子科技有限公司 | 软件的升级方法、装置和移动终端 |
CN105487891A (zh) * | 2015-11-26 | 2016-04-13 | 航天恒星科技有限公司 | 一种分布式集群的部署方法及系统 |
CN112631619A (zh) * | 2020-12-25 | 2021-04-09 | 西安雷风电子科技有限公司 | 一种自动安装可执行程序的方法及系统 |
CN113553554A (zh) * | 2021-07-12 | 2021-10-26 | 国网青海省电力公司信息通信公司 | 一种数据中台运维系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262480A (zh) * | 1999-01-25 | 2000-08-09 | 戴尔美国公司 | 用于计算机系统的可恢复软件安装方法和装置 |
CN1351293A (zh) * | 2000-10-30 | 2002-05-29 | 宏碁电脑股份有限公司 | 安装与预先启动软件的方法及系统 |
US6487718B1 (en) * | 1999-03-31 | 2002-11-26 | International Business Machines Corporation | Method and apparatus for installing applications in a distributed data processing system |
US20020184499A1 (en) * | 2001-04-19 | 2002-12-05 | Toshihiro Taguchi | Information processing apparatus, information processing method, and storage medium |
-
2002
- 2002-12-06 CN CNB021539405A patent/CN1324462C/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262480A (zh) * | 1999-01-25 | 2000-08-09 | 戴尔美国公司 | 用于计算机系统的可恢复软件安装方法和装置 |
US6487718B1 (en) * | 1999-03-31 | 2002-11-26 | International Business Machines Corporation | Method and apparatus for installing applications in a distributed data processing system |
CN1351293A (zh) * | 2000-10-30 | 2002-05-29 | 宏碁电脑股份有限公司 | 安装与预先启动软件的方法及系统 |
US20020184499A1 (en) * | 2001-04-19 | 2002-12-05 | Toshihiro Taguchi | Information processing apparatus, information processing method, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN1506812A (zh) | 2004-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0784276B1 (en) | Load test system and method | |
US8079037B2 (en) | Generic, multi-instance method and GUI detection system for tracking and monitoring computer applications | |
CN1324462C (zh) | 通过服务器给多台客户机自动安装应用软件的方法 | |
US7607127B2 (en) | Registry emulation | |
Kukreja et al. | RUI: Recording user input from interfaces under Windows and Mac OS X | |
US8140971B2 (en) | Dynamic and intelligent hover assistance | |
US7757129B2 (en) | Generalized trace and log facility for first error data collection | |
CN103559445B (zh) | 一种应用程序交互控制方法及装置 | |
US20100115334A1 (en) | Lightweight application-level runtime state save-and-restore utility | |
Zeldovich et al. | Interactive Performance Measurement with VNCPlay. | |
EP3072051A2 (en) | Diagnosing production applications | |
US20060248466A1 (en) | Integration of multiple programming/scripting languages into one program unit | |
US6543011B1 (en) | Method for event recording in java | |
US9195562B2 (en) | Recording external processes | |
CN109359092A (zh) | 文件管理方法、桌面显示方法、装置、终端及介质 | |
JP2006277771A (ja) | 計算機ネットワーク用の端末装置および操作履歴記録方法 | |
US6795096B2 (en) | Method to refresh view of a collection of objects | |
CN1225695C (zh) | 程序测试系统及方法 | |
Gui et al. | Firmnano: Toward iot firmware fuzzing through augmented virtual execution | |
Plale et al. | Effectiveness of hybrid workflow systems for computational science | |
US20040098703A1 (en) | Integration of multiple software tools under a single site | |
KR100893305B1 (ko) | 원격지 서버 컴퓨터를 이용한 다중 사용자용 웹 브라우징환경 제공 시스템과 그 제어 방법 | |
Ezolt | Optimizing Linux Performance: A Hands-on Guide to Linux Performance Tools | |
Theil et al. | The impact of new computer technology on accelerator control | |
CN116720180A (zh) | 一种基于客户端的http应用站点运维审计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20070704 Termination date: 20201206 |
|
CF01 | Termination of patent right due to non-payment of annual fee |