给大家讲下如何用AutoHotKey这个软件来编写软件自动安装脚本:(以安装极品五笔为例)
1,下载Autohotkey软件,安装到电脑上,为了方便大家学习,顺便把汉化的程序和帮助文件给大家传上去。(见文章尾)
2,右键选择新建Autohotkey script文件,用下载到的编辑器打开.如图:
完整代码如下:(蓝色为程序自建)
;
; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: A.N.Other <myemail@nowhere.com>
;
; Script Function:
; Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder)
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.Send,#d
Sleep,200
MouseMove,10,10
ToolTip,====================重要提示====================`n软件安装期间,不要操作键盘和鼠标,以免发生错误!`n若长时间未响应,请按Ctrl+Alt+Del解锁鼠标和键盘!`n欢迎大家联系交流!`n岚风(风无忌)制作软件自动安装脚本。`nQQ:545144121`n====================重要提示====================,10,10
BlockInput, On
Run,JDZW.exe
WinWait,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。
IfWinNotActive,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。,WinActivate,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。
WinWaitActive,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。
Sleep,300
Send,!i
Sleep,300
SendInput,D:\Program Files\freeime
Sleep,500
Send,!i
WinWait,ahk_class #32770,在开始菜单中建立极点程序组么?
IfWinNotActive,ahk_class #32770,在开始菜单中建立极点程序组么?,WinActivate,ahk_class #32770,在开始菜单中建立极点程序组么?
WinWaitActive,ahk_class #32770,在开始菜单中建立极点程序组么?
Sleep,300
Send,y
WinWait,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!
IfWinNotActive,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!,WinActivate,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!
WinWaitActive,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!
Sleep,300
Send,{enter}
BlockInput, Off
Exit下面给大家一步一步的讲下:
(1)运行jdzw.exe(极品五笔安装程序),出现以下界面:
先介绍下前几行代码的意思:
Send,#d
;模拟键盘发送Win+D键,即最小化所有窗口,这样是为了防止出错Sleep,200
;延迟0.2秒MouseMove,10,10
;将鼠标移动到桌面的(10,10)处,为了美观ToolTip,====================重要提示====================`n软件安装期间,不要操作键盘和鼠标,以免发生错误!`n若长时间未响应,请按Ctrl+Alt+Del解锁鼠标和键盘!`n欢迎大家联系交流!`n岚风(风无忌)制作软件自动安装脚本。`nQQ:545144121`n====================重要提示====================,10,10
;提示窗口,注意这是一行,没有回车BlockInput, On
;阻断键盘和鼠标的输入,防止程序运行期间被误操作要实现在AU中打开程序,可以用
Run命令,即
Run,JDZW.exe(这样写要求安装程序和脚本程序在相同文件夹下,不然要加上程序的路径)
为了等待安装窗口,加上
WinWait,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。其中ahk_class #32770是程序安装窗口的TITLE,后面的是窗口的TEXT,这是为了等待安装窗口出现再执行下面的命令。
为了使程序安装窗口为工作窗口,要防止它未激活,利用一下代码实现:
IfWinNotActive,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。,WinActivate,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。
WinWaitActive,ahk_class #32770,在安装“freeime 6.5标准版”之前,请阅读授权协议。
其中Ifwinnotactive,,winactivate的意思是如果存在的窗口未激活则激活它,winwaitactive的意思是等待指定窗口被激活。(窗口的Title什么的可以通过程序自带的AU3_SPY工具得到)
为了保险,再延迟0.3秒,即Sleep,300
Send,!i
;模拟键盘按下alt+i,即按下安装窗口的我接受按钮,进入下一步,Sleep,300
;延迟0.3秒,等待下个窗口出现SendInput,D:\Program Files\freeime
;模拟键盘输入字符串,即输入安装路径D:\Program Files\freeimeSleep,500
;延迟0.5秒 等待输入完成(这是为了保险,其实sendinput命令式瞬间完成的)Send,!i
;模拟键盘按下alt+i,即按下安装窗口的安装按钮,开始安装程序WinWait,ahk_class #32770,在开始菜单中建立极点程序组么?;等待指定窗口出现
IfWinNotActive,ahk_class #32770,在开始菜单中建立极点程序组么?,WinActivate,ahk_class #32770,在开始菜单中建立极点程序组么?
WinWaitActive,ahk_class #32770,在开始菜单中建立极点程序组么?;
等待并激活指定窗口Sleep,300;延迟00.3秒
Send,y
;模拟键盘按下Y键同意WinWait,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!
IfWinNotActive,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!,WinActivate,ahk_class #32770,中文 (国际版) - 极点五笔安装成功!
WinWaitActive,ahk_class #32770,中文 (国际版) - 极点五笔安装成功
!;等待安装完成窗口出现并激活Sleep,300;延迟0.3秒
Send,{enter};
发送回车键,完成安装BlockInput, Off
;激活键盘鼠标输入Exit
;退出脚本好了程序代码写好了,打开AHK2EXE工具选择ICO图标,编译AK文件为EXE文件就完成了!是不是很简单呢?
涉及的工具下载;
Autohotkey安装文件:
http://www.rayfile.com/files/3f22e933-8fe8-11de-981e-0014221b798a/提取码:3f22e933-8fe8-11de-981e-0014221b798a
Autohotkey汉化版(免安装):
http://www.rayfile.com/files/3f573dcc-8fe8-11de-b65d-0014221b798a/提取码:3f573dcc-8fe8-11de-b65d-0014221b798a
其它的一些汉化的东东(覆盖到AU的安装目录就行):
http://www.rayfile.com/files/3fc1e028-8fe8-11de-96df-0014221b798a/提取码:3fc1e028-8fe8-11de-96df-0014221b798a
http://www.rayfile.com/files/3f7b3b66-8fe8-11de-919f-0014221b798a/提取码:3f7b3b66-8fe8-11de-919f-0014221b798a
编辑器:
http://www.rayfile.com/files/3f9c41b3-8fe8-11de-8293-0014221b798a/提取码:3f9c41b3-8fe8-11de-8293-0014221b798a
[ 此帖被wzh880801在2009-08-23 23:28重新编辑 ]