[教程] 软件自动安装脚本编写总结
windows应用场景下自动安装软件的批处理脚本

windows应用场景下自动安装软件的批处理脚本在Windows应用场景下,自动安装软件的批处理脚本批处理脚本是一种可以在Windows操作系统下自动化执行一系列命令和任务的脚本语言。
在Windows应用场景中,批处理脚本尤其适用于自动安装软件。
本文将介绍如何利用批处理脚本实现自动安装软件的步骤和示例。
一、准备工作在编写批处理脚本之前,我们需要做一些准备工作。
1. 确认软件安装文件的位置首先,我们需要确认待安装软件的安装文件所在位置。
可以是本地硬盘、网络共享文件夹或者其他存储介质。
在脚本中,我们将使用该路径来引用安装文件。
2. 了解软件的静默安装命令大部分软件都提供了静默安装的命令行参数,通过这些参数可以在安装过程中自动化完成各种设置,而无需人工干预。
我们需要查找并了解待安装软件的静默安装命令。
二、编写批处理脚本下面是一个示例批处理脚本,用于自动安装软件。
```batch@echo off <!-- 批处理命令,关闭输出 -->set installer_path="C:\Path\to\installer.exe" <!-- 软件安装文件的路径-->set install_command=%installer_path% /silent <!-- 软件的静默安装命令 -->if exist %installer_path% (echo Installing software...%install_command%echo Software installation complete.) else (echo Installer not found.)```以上脚本的执行流程如下:1. 第一行 `@echo off` 是一个特殊命令,用于关闭脚本的输出。
这样可以使脚本在执行过程中更加简洁。
2. 第二行 `set installer_path=...` 定义了一个变量 `installer_path`,用于存储软件安装文件的路径。
Linux系统自动化安装脚本

Linux系统自动化安装脚本在计算机系统的安装过程中,自动化安装脚本是一种非常有用的工具。
它可以帮助管理员快速、准确地安装和配置Linux系统,节省大量的时间和精力。
本文将介绍Linux系统自动化安装脚本的作用、使用方法以及相关注意事项。
一、作用Linux系统自动化安装脚本是一种能够在无人参与的情况下完成系统安装和配置的工具。
它可以自动化执行一系列的操作,如分区、文件系统格式化、软件包安装、网络配置等。
通过脚本的方式,管理员只需预先编写好相关脚本,然后将其执行,即可完成整个系统安装的过程。
二、使用方法1. 编写脚本在开始使用Linux系统自动化安装脚本之前,管理员需要先编写好相关脚本。
脚本可以使用Shell语言编写,具体的语法和命令可根据需求自行选择。
在编写脚本时,需要考虑系统的具体需求和安装过程中需要设置的参数。
例如,可以使用fdisk命令进行分区,mkfs命令进行文件系统格式化,apt-get命令进行软件包安装等。
2. 准备启动媒介在执行自动化安装脚本之前,管理员需要准备好相应的启动媒介,例如光盘或USB设备。
启动媒介中需要包含Linux系统的安装程序,以及预先编写好的自动化安装脚本。
3. 启动系统将准备好的启动媒介插入目标计算机,并设置计算机从该启动媒介启动。
系统将会自动进入安装界面,并加载安装程序。
4. 执行脚本在安装程序加载完毕后,管理员可以选择使用自动安装模式,然后选择相应的自动化安装脚本进行执行。
安装程序将会按照脚本的指令进行操作,完成系统的安装和配置。
在此过程中,管理员不需要手动干预,可以等待安装脚本的执行完成。
三、注意事项1. 确保脚本的正确性在编写自动化安装脚本之前,管理员需要仔细检查和测试脚本的正确性。
尤其是在涉及到分区、文件系统格式化等操作的时候,需要保证脚本没有错误,并且能够满足系统的需求。
2. 调试和修改在执行自动化安装脚本之前,管理员可以先进行调试和修改。
可以在脚本中增加一些调试信息,以便排查可能出现的问题。
经典-软件自动安装AU3脚本详细解说wx(5)

经典-软件自动安装AU3脚本详细解说wx(5)·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~声明:1:为了方便装机,自己做的脚本,测试50+的机器,完美运行,分享出来大家使用,水平所限只能做到这样了,请高手多多指教。
2:所有软件为破解版,软件是安全的,并且经过NOD32+360杀毒,脚本偶尔会被报警为病毒,可以放心使用。
软件包下载后,验证下MD5值,看是否为原版~3:[经典-软件自动安装AU3脚本详细解说]分为6部分,建议全部下载.4:脚本软件包下载地址:/share/link?shareid=2294293225&uk=1144538·~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-=Rundll32.exe使用方法大全=-系统设置模块:sysdm.cpl命令:rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,0结果:显示常规设置。
命令:rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,1结果:显示设备管理设置。
命令:rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,2结果:显示硬件设置。
命令:rundll32.exe shell32.dll,Control_RunDLL sysdm.cpl,,3结果:显示性能设置。
命令:rundll32 shell32.dll,Control_RunDLL input.dll结果:显示输入法设置~~~~~~~~~~~~~~winexec(Pchar('StrCommand'),sw_Show);其中StrCommand代表以下命令之一(使用Windows中的运行不要加引号):rundll32 shell32,Control_RunDLL - 运行控制面板rundll32 shell32,OpenAs_RunDLL - 打开打开方式窗口rundll32 shell32,ShellAboutA Info-Box - 打开关于窗口rundll32 shell32,Control_RunDLL desk.cpl - 打开显示属性窗口rundll32 user,cascadechildwindows - 层叠全部窗口rundll32 user,tilechildwindows - 最小化所有的子窗口rundll32 user,repaintscreen - 刷新桌面rundll32 shell,shellexecute Explorer - 重新运行Windows Explorerrundll32 keyboard,disable - 锁写键盘rundll32 mouse,disable - 让鼠标失效rundll32 user,swapmousebutton - 交换鼠标按钮rundll32 user,setcursorpos - 设置鼠标位置为(0,0)rundll32 user,wnetconnectdialog - 打开映射网络驱动器窗口rundll32 user,wnetdisconnectdialog - 打开断开网络驱动器窗口rundll32 user,disableoemlayer - 显示BSOD窗口, (BSOD) = Blue Screen Of Death, 即蓝屏rundll32 diskcopy,DiskCopyRunDll - 打开磁盘复制窗口rundll32 rnaui.dll,RnaWizard - 运行Internet连接向导, 如果加上参数1则为silent模式rundll32 shell32,SHFormatDrive - 打开格式化磁盘(A)窗口rundll32 shell32,SHExitWindowsEx -1 - 冷启动Windows Explorerrundll32 shell32,SHExitWindowsEx 1 - 关机rundll32 shell32,SHExitWindowsEx 0 - 退当前用户rundll32 shell32,SHExitWindowsEx 2 Windows9x 快速重启rundll32 krnl386.exe,exitkernel - 强行退出Windows 9x(无确认)rundll rnaui.dll,RnaDial MyConnect - 运行网络连接对话框rundll32 msprint2.dll,RUNDLL_PrintTestPage - 选择打印机和打印测试页rundll32 user,setcaretblinktime - 设置光标闪烁速度rundll32 user, setdoubleclicktime - 测试鼠标双击速度rundll32 sysdm.cpl,InstallDevice_Rundll - 搜索非PnP设备控制面板中的各项功能winexec('rundll32.exe shell32.dll, Control_RunDLL', 9);{辅助选项属性-键盘}winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 1', 9);{辅助选项属性-声音}winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 2', 9);{辅助选项属性-显示}winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 3', 9);{辅助选项属性-鼠标}winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 4', 9);{辅助选项属性-常规}winexec('rundll32.exe shell32.dll, Control_RunDLL access.cpl, 5', 9);{添加删除程序属性-安装卸载}winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 1', 9);{添加删除程序属性-Windows安装程序}winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 2', 9);{添加删除程序属性-启动盘}winexec('rundll32.exe shell32.dll, Control_RunDLL Appwiz.cpl, 3', 9);{显示属性-背景}winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 0', 9);{显示属性-屏幕保护程序}winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 1', 9);{显示属性-外观}winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 2', 9);{显示属性-设置}winexec('rundll32.exe shell32.dll, Control_RunDLL desk.cpl, 3', 9); {Internet 属性-常规}winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 0', 9); {Internet 属性-安全}winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 1', 9); {Internet 属性-内容}winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 2', 9); {Internet 属性-连接}winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 3', 9); {Internet 属性-程序}winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 4', 9); {Internet 属性-高级}winexec('rundll32.exe shell32.dll, Control_RunDLL Inetcpl.cpl, 5', 9); {区域设置属性-区域设置}winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 0', 9); {区域设置属性-数字}winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 1', 9); {区域设置属性-货币}winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 2', 9); {区域设置属性-时间}winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 3', 9); {区域设置属性-日期}winexec('rundll32.exe shell32.dll, Control_RunDLL Intl.cpl, 4', 9);winexec('rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 0', 9);winexec('rundll32.exe shell32.dll, Control_RunDLL Joy.cpl, 1', 9); {鼠标属性}winexec('rundll32.exe shell32.dll, Control_RunDLL Main.cpl', 9); {多媒体属性-音频}winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 0', 9); {多媒体属性-视频}winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 1', 9); {多媒体属性-MIDI}winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 2', 9); {多媒体属性-CD音乐}winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 3', 9); {多媒体属性-设备}winexec('rundll32.exe shell32.dll, Control_RunDLL Mmsys.cpl, 4', 9); {调制解调器属性}winexec('rundll32.exe shell32.dll, Control_RunDLL Modem.cpl', 9); winexec('rundll32.exe shell32.dll, Control_RunDLL Netcpl.cpl', 9);{密码属性}winexec('rundll32.exe shell32.dll, Control_RunDLL Password.cpl', 9);{扫描仪与数字相机属性}winexec('rundll32.exe shell32.dll, Control_RunDLL Sticpl.cpl', 9);{系统属性-常规}winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 0', 9);{系统属性-设备管理器}winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 1', 9);{系统属性-硬件配置文件}winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 2', 9);{系统属性-性能}winexec('rundll32.exe shell32.dll, Control_RunDLL Sysdm.cpl, 3', 9);{日期时间属性}winexec('rundll32.exe shell32.dll, Control_RunDLL timedate.cpl', 9);{电源管理属性}winexec('rundll32.exe shell32.dll, Control_RunDLL Powercfg.cpl', 9);winexec('rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl', 9);关于调用后的判断处理建议:先声明一个cardinal类型的变量RtnCardinal获取返回值进行判断如:RtnCardinal = winexec('rundll32.exe shell32.dll, Control_RunDLL Telephon.cpl', 9);返回值可能原因0 程序超出内存ERROR_BAD_FORMAT 程序为一个非法的Win32.EXE程序ERROR_FILE_NOT_FOUND 指定文件没找到ERROR_PATH_NOT_FOUND 指定路径没找到使用方法:点击“开始-程式-Ms-Dos方式”,进入Dos视窗,然後键入rundll32.exe user.exe,restartwindows,再按下回车键,这时你将看到,机器被重启了!怎么样,是不是很有趣?当然,Rundll的功能绝不仅仅是重启你的机器。
AutoIt自动安装脚本制作入门

AutoIt自动安装脚本制作入门来源:作者:Zhuzb时间:08年05月17日浏览:5160【大中小】一、制作目的和原则说到自动安装,其目的就是模拟手动操作,自动完成对指定按键的点击和输入指定内容,处理可能出现的情况,最终完成程序的安装和设置。
也许有人说这样就明白了,用AutoIt里的MouseClick、Send来完成点击和输入,只要抓好点击的坐标就一切搞定了啊!这当然不能说不是个办法,但做出来的成品可能只能在你自己的电脑上能用,说不定下一次你自己也没法用了。
因为每个人的电脑是不一样的,安装窗体在不同分辨率下的位置也是不一样的,如果用这样做的脚本在别人电脑上操作,就会看到鼠标经过N次狂奔后,打开了M个窗口,却没有点到你要的东西(用来整人倒不错)。
我们的目的是让脚本能有效的在其他人电脑上运行安装,处理遇到的情况,完成设置或注册等动作,然后结束。
所以制作的原则就是通用、精确和可用1、尽量少的用鼠标模拟点击的方法,实在用要也要做到保证点击坐标的可*原因上面都说了,但有时不得已用到点击坐标时怎么办呢,你先想想吧。
后面告诉你我的办法2、尽量少用sleep等待语句,而换用其它准确的时间判断语句有的朋友喜欢用sleep在一个操作后等待一下,来保证脚本的可*性,其实这却是个不可*的做法。
因为每台电脑的性能有所差异,在不同的情况下也有差异,在你的电脑上制作脚本时要停顿 5 秒的,在一台第旧的电脑上可能要等待20秒也不一定。
AutoIt里是有解决方法的,比如winwaitactive,winwaitclose等,再不行自己写判断啦!3、尽量考虑可能出现的情况有的程序在安装时会提出一些要求,比如需要更新什么文件或进行什么操作,而且未必在每台电脑上安装时都会出现,这就要我们在做好脚本后多在不同环境测试一下,考虑到一些常见的问题二、如何学好AutoIt对于AutoIt我也是个菜鸟,没有什么经验可谈,但我觉得有三点一定要做到1、充分利用帮助文件。
【转】制作软件自动安装,软件全自动安装包解析

【转】制作软件自动安装,软件全自动安装包经常需要帮别人安装一些常用软件,“下一步”、修改安装目录等等,总得做很多重复的工作,很久之前就看到一些高手用autoit 来做一些软件的“自动安装”,软件的整个安装过程是全自动的,不需要点击或者输入任何东西,非常方便。
方法一:由于对autoit不是很了解,一直没做出自己需要的“自动安装”,虽然也尝试用其他的工具制作过类似的“自动安装”,但是效果不是太好。
今天无意看到一篇文章《制作软件自动化安装的最简便的方法[By Gooker]》,如茅塞顿开,获益匪浅,感谢原作者。
下载自动化编写任务脚本autoit v3.2.55中文绿色版-目前最新是v3版本,类似BASIC语言风格的脚本程序的免费软件,它被设计用来在Windows GUI中进行自动操作.通过它可以组合使用模拟键击,鼠标移动和窗口/控件操作等来实现自动化任务,这是其它语言所无法做到或尚无可靠方法实现的。
这个方法不是用别的工具,正是AU3自带的。
最简便的方法是什么样子的:执行一遍软件的安装,就出来代码了,编译一下就出来工具了。
OK,先说明用的不是用Autoit宏生成器,总感觉那个玩意不准(不知道是不是没用过的原因),其实可能大家也在使用的时候碰到过,偶然按出来了,或者老手都知道这个软件。
好了,现在告诉你如何做:1、打开目录是:AutoIt3\SciTe\ScriptWriter 下面的AU3Record.exe文件2、主角就出现了,建议选中"Record Window Text"(记录窗口文字),另外"Record Mouse"必选,然后browse选择你想要自动安装的软件;3、选择好之后就点击"Click To Record"的图标,之后就安装你的软件,你的操作都会被记录,这个记录方式是完全模拟的,包括鼠标的移动、点击等等;4、软件安装完毕之后,我们点击右上角这个完成,程序会自动把代码写到SciTE里面。
AU3脚本软件自动安装

WinWaitActive("一键GHOST安装程序", "立即运行一键GHOST") ;--------激活目标窗口--------
ControlCommand("一键GHOST安装程序", "立即运行一键GHOST","Button32","UnCheck", "") ;--------选空目标按钮--------
ControlCommand(" 360安全卫士7.5.0.2001安装", "正在完成"360安全卫士"安装向导","Button4","UnCheck", "") ;--------选空目标按钮--------
ControlCommand(" 360安全卫士7.5.0.2001安装", "正在完成"360安全卫士"安装向导","Button2","Check", "") ;--------选中目标按钮--------
Sleep(1000)
WinWaitActive("Avira AntiVir Personal - Free Antivirus", "欢迎使用") ;--------激活目标窗口--------
ControlCommand("Avira AntiVir Personal - Free Antivirus", "欢迎使用","Button2","Check", "") ;--------选中目标按钮--------
经典-软件自动安装AU3脚本详细解说wx(6)

经典-软件自动安装AU3脚本详细解说wx(6)-=我自己个人常用的AU函数=-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-=@ScriptDir应用=-绝对路径@ScriptDir&" 脚本所在目录的路径,用法是(@ScriptDir&"\2222.exe",比如:脚本在C:\AAA\BBB中@ScriptDir=C:\AAA\BBB&字符添加符号"\2222.exe"把\2222.exe变成字符加入前面最后结果@ScriptDir=C:\AAA\BBB\2222.exe@@@@@@@@@@@@@@@@@@@@@@@@@@FileCreateShortcut(@ScriptDir&"\2222.exe","C:\Documents and Settings\All Users\「开始」菜单\程序\启动\1111.lnk")@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@1WinWait暂停脚本的执行直至指定窗口存在(出现)为止.WinWait ( "窗口标题" [, "窗口文本" [, 超时时间]] )@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2WinWaitActive暂停脚本的执行直至指定窗口被激活(成为活动状态)为止.WinWaitActive ( "窗口标题"[, "窗口文本"[, 超时时间]] )@@@@@@@@@@@@@@@@@@@@@3WinWaitClose暂停脚本的执行直至所指定窗口不再存在(被关闭或其它)为止。
WinWaitClose ( "窗口标题"[, "窗口文本"[, 超时时间]] )@@@@@@@@@@@@@@@@@@@@@@@4WinActivate激活窗口相关命令/函数WinActivate ( "窗口标题" [, "窗口文本"] )@@@@@@@@@@@@@@@@@@5关闭窗口关闭窗口有两种方式,一种是正常的关闭窗口(WinClose),另一种则是强行关闭窗口(WinKill):@@@@@@@@@@@@@@@@@@@@@@@6延时Sleep(3000)@@@@@@@@@@@@@@@@@7ControlClick 向指定控件发送鼠标点击命令。
使用Python脚本在Linux上实现自动化软件安装

使用Python脚本在Linux上实现自动化软件安装随着互联网的快速发展和技术的不断进步,软件安装已经成为我们日常工作中经常需要面对的任务之一。
为了提高效率并简化这一过程,使用Python脚本在Linux上实现自动化软件安装是一个不错的选择。
本文将介绍如何使用Python脚本来实现这一目标。
一、Python脚本基本介绍Python是一种高级编程语言,其简单易学、功能强大的特点使得它成为了许多开发者的首选。
脚本则是用来执行一系列命令的文件。
Python脚本可以帮助我们完成各种各样的自动化任务,包括软件安装。
二、安装Python和相关库在开始编写Python脚本之前,我们需要首先在Linux系统上安装Python和相关库。
打开终端并输入以下命令:```sudo apt-get install python3```这将安装Python 3版本。
如果你已经安装了Python,请确保它是最新版本。
另外,有些软件安装可能需要使用到一些额外的Python库,你可以通过以下命令来安装:```pip install 库名```其中,"库名"是你所需要的库的名称。
三、编写Python脚本现在我们可以开始编写Python脚本来实现自动化软件安装。
以下是一个简单的示例脚本:```pythonimport osdef install_software(software_name, software_version):software_url = get_software_url(software_name, software_version) download_software(software_url)install_package(software_name)def get_software_url(software_name, software_version):# 根据软件名称和版本号获取下载链接passdef download_software(software_url):# 下载软件passdef install_package(software_name):# 安装软件包passif __name__ == "__main__":software_name = "xxx" # 软件名称software_version = "1.0" # 软件版本install_software(software_name, software_version)```在这个示例脚本中,我们定义了一个`install_software`函数,该函数接受软件名称和版本作为参数,然后按照以下步骤来进行软件安装:1. 通过`get_software_url`函数获取软件下载链接;2. 使用`download_software`函数下载软件包;3. 调用`install_package`函数安装软件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这编文章主要是总结自己在编写200906软件自动安装包中脚本的经验,以便与提高自己编写脚本的能力。
其实自动脚本的编写很简单,我只用了一个星期的时间学习,就能够自己编写脚本了,但是要写好就不容易,主要是要反复测试。
200906软件自动安装包中的软件安装器是论坛的software installer 2.0版本(见图1)。
这是个软件安装器可以自由选择安装路径是非常好的一个软件,下面我把自己在编写脚本时的有关情况进行一下总结以软件包中迅雷 v5.8.9.662为例,脚本开头的代码如下:Local $InstallPathIf $Cmdline[0] <> 0 Then$InstallPath = $Cmdline[1]EndIf这段代码具体的意思,我也不是很清楚,但是你要想用software installer 2.0这个安装器,就必须以这段代码开头。
Run(@ScriptDir & "\Thunder.exe")这段代码的意思是运行当前脚本所在的目录中的Thunder.exe软件,其中,RUN是运行命令,@ScriptDir是当前运行中的脚本所在的目录(不包括结尾的反斜杠符号)。
&是使两个字符串连接起来,后面的代码则是你要安装的软件的文件名。
这个代码运行后会出行如下界面(见图2)本帖隐藏的内容WinWait("安装 - 迅雷5","欢迎使用迅雷5 安装向导")WinActivate("安装 - 迅雷5","欢迎使用迅雷5 安装向导")WinWaitActive("安装 - 迅雷5","欢迎使用迅雷5 安装向导")Send("!N")WinWait命令是暂停脚本的执行直至指定窗口存在(出现)为止。
WinActivate命令是激活指定的窗口。
WinWaitActive 命令是暂停脚本的执行直至指定窗口被激活(成为可活动状态)为止。
这段代码有的人会说只用WinWait和WinWaitActive就可以了,为什么我要在这里加一个WinActivate命令,主要是考虑我们平时装软件时,不可能只装一个,如果我们装的软件较多,加上电脑配臵不高的话,可能会导致安装第二个软件时,软件安装界面不在激活状态(这种情况我遇到过),因此,为了安装顺利我认为在这个地方加上WinActivate命令还是有必要的。
Send命令是模拟键盘动作,意思是按ALT+N,其它的键盘按键,大家可以看AU3帮助中Send命令的参数。
除了模拟键盘外AU3还提供了模拟鼠标动作,大家可以用ControlClick命令,具体用法可以看小穆的教程(他主要以模拟鼠标动作为主)。
/bbs/viewthread.php?tid=18186&fromuid=9516,上面的代码执行后(见图3)WinWait("安装 - 迅雷5","许可协议")WinWaitActive("安装 - 迅雷5","许可协议")Send("!A")send("!N")这段代码是指捕抓到窗口后,先按ALT+A键,后ALT+N键。
执行后(见图4)WinWait("安装 - 迅雷5","选择附加任务")WinWaitActive("安装 - 迅雷5","选择附加任务")Send("{Space}")Send("!N")这段代码和上面是一样的意思,注意在选项选择时,我们可以用Send("{TAB}")和Send("{DOWN}")命令进行选项的选择,用Send("{Space}")启用和关闭选项。
有时有些软件不能用键盘动作进行选择时,可以用鼠标动作ControlClick 命令进行。
如QQ2009软件 (见图5)这种情况的代码可以这样编写:WinWait("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项")WinWaitActive("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项") ControlClick("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项","Button9") ControlClick("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项","Button8") ControlClick("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项","Button10") ControlClick("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项","Button11") ControlClick("腾讯QQ2009 安装向导","请选择自定义安装选项与快捷方式选项","Button7") send("!N")再回到迅雷安装步骤,见图6:WinWait("安装 - 迅雷5","百度超级搜霸轻松搜索,拦截广告!")WinWaitActive("安装 - 迅雷5","百度超级搜霸轻松搜索,拦截广告!")Send("{Space}")Send("!N")捕抓到窗口后,取消“百度超级搜霸”的安装,并按“下一步”,执行后(见图7):WinWait("安装 - 迅雷5","选择目标位臵")WinWaitActive("安装 - 迅雷5","选择目标位臵")If $InstallPath <> "" ThenSend("{del 33}")Send($InstallPath & "\" & "Thunder\")EndIfsend("!N")这段代码说实话具体什么意思我也不是很明白,我只能一行一行的说,前两行大家都知道了我就不说了。
If $InstallPath <> "" Then,这个是一个判断语句,其中$InstallPath是软件安装器software installer的选择路径变量,如果你在软件安装器中没有选择路径的话,就会执行EndIf后的代码,也就是直接按“下一步”。
如果你进行了路径选择,就会执行其后的代码。
Send("{del 33}")这个是:连续按“删除”键33次,其目的是删除软件安装路径框中的默认路径。
Send($InstallPath & "\" & "Thunder\")这个是:在软件安装路径框中输入路径。
例:如果你在软件安装器中选择软件的安装路径为d:盘的话,这段代码意思就是在软件安装路径框中输入“d:\Thunder\”。
有些软件在安装时,安装路径框不是选中状态,这个时候就要改一改上述的代码了,如200906软件自动安装包中的QQ 软件,见图8:遇到这种情况就要先用ControlClick命令选中软件路径输入框,然后用再用“退格”键,删除输入框中的默认路径。
具体代码如下:WinWait("腾讯QQ2009 安装向导","请选择安装路径")WinWaitActive("腾讯QQ2009 安装向导","请选择安装路径")ControlClick("腾讯QQ2009 安装向导","请选择安装路径","Edit1")If $InstallPath <> "" ThenSend("{BACKSPACE 33}")Send($InstallPath & "\" & "Tencent\QQ\")EndIfsend("!i")再回到迅雷安装步骤。
路径选择完后,执行下一步,会出现两种情况。
第一种情况,进入下一个步骤,见图9这种情况的代码如下:WinWait("安装 - 迅雷5","准备安装")WinWaitActive("安装 - 迅雷5","准备安装")Send("!I")第二种情况,会出现文件夹存在,见图10这种情况代码如下:if WinActive("文件夹存在") = 1 ThenSend("{enter}")EndIf意思是检查“文件夹存在”窗口是否存在,如果存在就按“回车”键,如果不存在就执行EndIf后面的代码。
这个代码执行完后就会回到第一种情况。
当第一种情况的代码执行完后就会出现下面的界面(见图11)。
这个是软件正在安装的界面,我们不管理它,当安装完成后,我们会看到下面的界面(图12):当迅雷安装到最后一个界面时,IE浏览器弹出,并使安装界面不在激活状态,我要用下面的代码解决:WinWait("安装 - 迅雷5","迅雷5 安装向导完成")WinActivate("安装 - 迅雷5","迅雷5 安装向导完成")While 1SelectCase ProcessExists("IEXPLORE.EXE")ProcessClose("IEXPLORE.EXE")ExitLoopCase ProcessExists("Maxthon.exe")ProcessClose("Maxthon.exe")ExitLoopEndSelectWend其中WinActivate命令是激活指定的窗口,While 1….Wend是一个循环命令,Select…Case…EndSelect是一个多选择命令,ProcessExists命令是检查指定进程是否存在,ProcessClose命令是结束指定进程。