不知道你还会不会看这个贴子,我也是因为做QQ的安装脚本时遇到了同样的问题才找到你这张贴子的。看来我和楼主是同一类人了,所以找到办法之后,特意注册个号上来回复你。
楼上各位大大们的方法都对,但也都不好用,因为他们没有真的去做QQ2008的安装AU3。不知道中搜的控件是取不到的。
你的想法是对的,只能用模拟鼠标来点。我的做法是这样的:(多次测试成功)
Opt("MouseCoordMode", 0)
MouseMove(32,259)
Sleep(1000) ;这句是关健,少了这句就点不上了。
MouseDown("left")
MouseUp("left")
分析:主要原因是鼠标移动的慢,脚本运行的快,没有等待的语句,没等鼠标移到就点了。
另外,在开头最好加上BlockInput (1)禁止用户动鼠标。在最后再BlockInput (0)取消禁止。
最后,贴上我的源码,希望对你有些帮助。我不常来这个论坛,我的QQ是:370947040
#region --- ScriptWriter generated code Start ---
if not FileExists ( "C:\WINDOWS\Temp\hyinstall.ini" ) Then FileCopy ( "hyinstall.ini", "C:\WINDOWS\Temp\hyinstall.ini",1 )
$var = IniRead("C:\WINDOWS\Temp\hyinstall.ini", "Config", "autoinstallpath", "未知")
if $var==0 or $var=="" Then
$input=FileSelectFolder ( "选择软件安装总目录,如D:\Program Files\", "",1,"D:\Program Files\" )
IniWrite ("C:\WINDOWS\Temp\hyinstall.ini", "Config", "autoinstallpath", $input)
EndIf
$var = IniRead("C:\WINDOWS\Temp\hyinstall.ini", "Config", "autoinstallpath", "未知")
‘以上的语句,是用来调用一个INI文件,记录用户的安装路径,实现多个软件全自动安装的。INI文件的内容只有两句[Config]
autoinstallpath=0
’这是hyinstall.ini的内容,要放在当前目录。
BlockInput (1)
Run("QQ2008IIBeta1.exe")
WinWait("QQ2008II Beta1 安装","欢迎使用 QQ2008II Be")
If Not WinActive("QQ2008II Beta1 安装","欢迎使用 QQ2008II Be") Then WinActivate("QQ2008II Beta1 安装","欢迎使用 QQ2008II Be")
WinWaitActive("QQ2008II Beta1 安装","欢迎使用 QQ2008II Be")
ControlClick("QQ2008II Beta1 安装","欢迎使用 QQ2008II Be","[class:Button;INSTANCE:2]")
WinWait("QQ2008II Beta1 安装","选择使用环境,获得推")
If Not WinActive("QQ2008II Beta1 安装","选择使用环境,获得推") Then WinActivate("QQ2008II Beta1 安装","选择使用环境,获得推")
WinWaitActive("QQ2008II Beta1 安装","选择使用环境,获得推")
ControlClick("QQ2008II Beta1 安装","选择使用环境,获得推","[class:Button;INSTANCE:4]")
ControlClick("QQ2008II Beta1 安装","选择使用环境,获得推","[class:Button;INSTANCE:10]")
ControlClick("QQ2008II Beta1 安装","选择使用环境,获得推","[class:Button;INSTANCE:2]")
WinWait("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ")
If Not WinActive("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ") Then WinActivate("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ")
WinWaitActive("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ")
Opt("MouseCoordMode",0)
ControlSend ("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ", "[class:Edit;INSTANCE:1]", $var&"\Tencent\QQ")
ControlClick("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ","[class:Button;INSTANCE:4]")
ControlClick("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ","[class:Button;INSTANCE:6]")
MouseMove(32,259)
Sleep(1000)
MouseDown("left")
MouseUp("left")
ControlClick("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ","[class:Button;INSTANCE:5]")
ControlClick("QQ2008II Beta1 安装 ","选定 QQ2008II Beta1 ","[class:Button;INSTANCE:2]")
WinWait("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ")
If Not WinActive("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ") Then WinActivate("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ")
WinWaitActive("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ")
ControlClick("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ","[class:Button;INSTANCE:4]")
ControlClick("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ","[class:Button;INSTANCE:5]")
ControlClick("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ","[class:Button;INSTANCE:6]")
ControlClick("QQ2008II Beta1 安装 ","完成 QQ2008II Beta1 ","[class:Button;INSTANCE:2]")
FileDelete ("C:\Documents and Settings\user\Application Data\Microsoft\Internet Explorer\Quick Launch\QQ游戏.lnk")
FileDelete ("C:\Documents and Settings\user\「开始」菜单\程序\启动\腾讯QQ.lnk")
FileDelete ("C:\Documents and Settings\user\桌面\QQ游戏.lnk")
BlockInput (0)
#endregion --- ScriptWriter generated code End --- |