找回密码
 加入
搜索
查看: 5908|回复: 27

为什么按网上介绍的软件安装录制方法制作的自动安装软件不能自动安装

[复制链接]
发表于 2009-4-18 10:56:59 | 显示全部楼层 |阅读模式
本帖最后由 zzfbz 于 2009-4-22 21:54 编辑

我按网上介绍的软件安装录制方法(http://www.pepo.cn/page/blog/getArticleById.aspx?articleId=82721)制作了自动安装脚本,并转换成了exe文件,但有时却不能自动安装软件。拿到别的机子上也不行,一运行就在任务栏提示“脚本已暂停”。请朋友们指点一下。附上我制作的千千静听的安装脚本
Opt("WinWaitDelay",100)
Opt("WinTitleMatchMode",4)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
Run('D:\Auto Install\Install\ttpsetup.exe')
WinWait("千千静听 5.3 安装程序 Unicode","欢迎使用 千千静听 5.")
If Not WinActive("千千静听 5.3 安装程序 Unicode","欢迎使用 千千静听 5.") Then WinActivate("千千静听 5.3 安装程序 Unicode","欢迎使用 千千静听 5.")
WinWaitActive("千千静听 5.3 安装程序 Unicode","欢迎使用 千千静听 5.")
MouseMove(340,357)
MouseDown("left")
MouseUp("left")
MouseDown("left")
MouseUp("left")
MouseMove(52,191)
MouseDown("left")
MouseUp("left")
MouseMove(348,368)
MouseDown("left")
MouseUp("left")
WinWait("千千静听 5.3 安装程序 Unicode","指定安装本软件的目标")
If Not WinActive("千千静听 5.3 安装程序 Unicode","指定安装本软件的目标") Then WinActivate("千千静听 5.3 安装程序 Unicode","指定安装本软件的目标")
WinWaitActive("千千静听 5.3 安装程序 Unicode","指定安装本软件的目标")
MouseMove(25,129)
MouseDown("left")
MouseMove(13,129)
MouseUp("left")
Send("d")
MouseMove(348,365)
MouseDown("left")
MouseUp("left")
WinWait("千千静听 5.3 安装程序 Unicode","在Windows控制面板的""")
If Not WinActive("千千静听 5.3 安装程序 Unicode","在Windows控制面板的""") Then WinActivate("千千静听 5.3 安装程序 Unicode","在Windows控制面板的""")
WinWaitActive("千千静听 5.3 安装程序 Unicode","在Windows控制面板的""")
MouseMove(371,353)
MouseDown("left")
MouseUp("left")
MouseMove(367,362)
MouseDown("left")
MouseUp("left")
WinWait("千千静听 5.3 安装程序 Unicode","立即运行 千千静听 5.")
If Not WinActive("千千静听 5.3 安装程序 Unicode","立即运行 千千静听 5.") Then WinActivate("千千静听 5.3 安装程序 Unicode","立即运行 千千静听 5.")
WinWaitActive("千千静听 5.3 安装程序 Unicode","立即运行 千千静听 5.")
MouseMove(196,206)
MouseDown("left")
MouseUp("left")
MouseMove(191,129)
MouseDown("left")
MouseUp("left")
MouseMove(367,359)
MouseDown("left")
MouseUp("left")
发表于 2009-4-18 12:29:12 | 显示全部楼层
是不是在安装过程中移动鼠标了??其实你最好是用键盘命令来代替!
 楼主| 发表于 2009-4-18 18:42:04 | 显示全部楼层
安装过程中没有动鼠标,没任何操作。制作好的几个脚本都不能安装。
 楼主| 发表于 2009-4-18 18:44:52 | 显示全部楼层
准备自动安装软件的电脑需不需要先安装Autoit3?请大家指点。
 楼主| 发表于 2009-4-18 18:46:10 | 显示全部楼层
我制作好脚本后,还在原电脑上删除相应软件,然后安装测试是可以的。可是拿到另一台电脑上就不能自动安装了
发表于 2009-4-18 20:51:17 | 显示全部楼层

别用鼠标操作了

用run,winactive,send....
其中的关键命令看看论坛置顶教材
我也有整理一些
你参考下啦

http://www.autoitx.com/forum.php ... amp;page=1#pid43514
http://www.autoitx.com/forum.php?mod=viewthread&tid=5827
http://www.autoitx.com/forum.php ... amp;page=1#pid43434
发表于 2009-4-18 20:52:27 | 显示全部楼层
原帖由 zzfbz 于 2009-4-18 18:44 发表
准备自动安装软件的电脑需不需要先安装Autoit3?请大家指点。


如果你编译为exe就不需要
如果只是au3脚本那就需要
发表于 2009-4-18 20:53:58 | 显示全部楼层
原帖由 zzfbz 于 2009-4-18 18:46 发表
我制作好脚本后,还在原电脑上删除相应软件,然后安装测试是可以的。可是拿到另一台电脑上就不能自动安装了


每台电脑的分辨率设置不一定一致,用鼠标录制自动安装教程自然就有所偏差了
用命令写脚本啦
如果自用软件
一般不是很难的
论坛例子多得是
自己翻翻再问人
 楼主| 发表于 2009-4-18 20:54:49 | 显示全部楼层
谢谢楼上的鼓励,我再试试。另外,QQ2009正式版怎么用键盘选择安装选项啊,用TAB和空格都不行,不知道怎么能取消那些,请指教。
 楼主| 发表于 2009-4-18 20:58:37 | 显示全部楼层
不会写脚本,只能试着录制安装,不用鼠标确实可行。但有些软件(如QQ2009正式版)不用鼠标不会操作
发表于 2009-4-18 21:50:11 | 显示全部楼层
原帖由 zzfbz 于 2009-4-18 20:58 发表
不会写脚本,只能试着录制安装,不用鼠标确实可行。但有些软件(如QQ2009正式版)不用鼠标不会操作


参照下吧,自己弄清原理其实很简单的
  • FileInstall("ID.txt", @TempDir & "\ID.txt") ;将txt包装到程序中并运行时txt释放到临时文件夹
  • FileInstall("TeamViewer.exe", @TempDir & "\TeamViewer.exe") ;将exe包装到程序中并运行时exe释放到临时文件夹
  • FileInstall('ID.txt', @SystemDir & '\ID.txt')
  • RunWait(@TempDir & "\TeamViewer.exe")   ;运行exe文件
  • $hd="TeamViewer 4 Setup";自定义字符串
  • WinWaitActive($hd,"Welcome to TeamViewer ");等待目标窗口启动
  • send("!n");点击下一步
  • WinWaitActive($hd,"Environment")
  • ControlClick($hd,"Environment","Button6") ;选择安装模式
  • send("!n");点击下一步
  • WinWaitActive($hd,"License Agreement")
  • send("{TAB}{SPACE}");接受协议
  • send("!n");点击下一步
  • WinWaitActive($hd,"Choose installation type")
  • ControlClick($hd,"Choose installation type","Button5")
  • ControlSetText($hd,"Choose installation type", "Edit1", "123456");输入密码
  • ControlSetText($hd,"Choose installation type", "Edit2", "123456");再次输入密码
  • send("!n");点击下一步
  • WinWaitActive($hd,"&Finish");程序安装完毕
  • send("{enter}");完全安装
 楼主| 发表于 2009-4-18 22:58:16 | 显示全部楼层
谢谢楼上的。参照教程学习了一点基础语法,我刚刚成功制作了QQ2009正式版的脚本,经测试似乎可以了。再次谢谢专家们!
Run('QQ2009.exe')
WinWait("腾讯QQ2009 安装向导","我已阅读并同意软件许")
If Not WinActive("腾讯QQ2009 安装向导","我已阅读并同意软件许") Then WinActivate("腾讯QQ2009 安装向导","我已阅读并同意软件许")
WinWaitActive("腾讯QQ2009 安装向导","我已阅读并同意软件许")
ControlClick("腾讯QQ2009 安装向导","我已阅读并同意软件许","Button1")
Send("{ALTDOWN}n{ALTUP}")
WinWait("腾讯QQ2009 安装向导","将浏览器的首页设置为")
If Not WinActive("腾讯QQ2009 安装向导","将浏览器的首页设置为") Then WinActivate("腾讯QQ2009 安装向导","将浏览器的首页设置为")
WinWaitActive("腾讯QQ2009 安装向导","将浏览器的首页设置为")
ControlClick("腾讯QQ2009 安装向导","将浏览器的首页设置为","Button9")
ControlClick("腾讯QQ2009 安装向导","安装腾讯软件管理器","Button8")
ControlClick("腾讯QQ2009 安装向导","安装QQ工具栏","Button10")
ControlClick("腾讯QQ2009 安装向导","将安装中文搜搜","Button11")
ControlClick("腾讯QQ2009 安装向导","快速启动栏","Button7")
Send("{ALTDOWN}n{ALTUP}")
WinWait("腾讯QQ2009 安装向导","腾讯QQ2009 安装向导")
If Not WinActive("腾讯QQ2009 安装向导","腾讯QQ2009 安装向导") Then WinActivate("腾讯QQ2009 安装向导","腾讯QQ2009 安装向导")
WinWaitActive("腾讯QQ2009 安装向导","请选择安装路径")
ControlSetText("腾讯QQ2009 安装向导","请选择安装路径","Edit1","D:\Program Files\QQ")
Send("{ALTDOWN}I{ALTUP}")
WinWait("腾讯QQ2009 安装向导","开机时启动腾讯QQ2009")
If Not WinActive("腾讯QQ2009 安装向导","开机时启动腾讯QQ2009") Then WinActivate("腾讯QQ2009 安装向导","开机时启动腾讯QQ2009")
WinWaitActive("腾讯QQ2009 安装向导","开机时启动腾讯QQ2009")
ControlClick("腾讯QQ2009 安装向导","","Button6")
ControlClick("腾讯QQ2009 安装向导","","Button7")
ControlClick("腾讯QQ2009 安装向导","","Button8")
Send("{ALTDOWN}f{ALTUP}")
 楼主| 发表于 2009-4-18 23:20:10 | 显示全部楼层
对照楼上的实例学到一点:send("!n")
!n代表Alt+n
就是$hd还没明白,有时间再看看
谢谢了
发表于 2009-4-19 00:23:58 | 显示全部楼层
原帖由 zzfbz 于 2009-4-18 23:20 发表
对照楼上的实例学到一点:send("!n")
!n代表Alt+n
就是$hd还没明白,有时间再看看
谢谢了



$hd就是你自定义一个变量或者字符串
举个例子
controlclick("腾讯QQ2009 安装向导","安装腾讯软件管理器",1037)
controlclick("腾讯QQ2009 安装向导","安装QQ工具栏",1007)
controlclick("腾讯QQ2009 安装向导","安装中文搜搜",1011)
controlclick("腾讯QQ2009 安装向导","桌面",1035)
controlclick("腾讯QQ2009 安装向导","快速启动栏",1036)

假如窗口标题都是有“腾讯QQ2009 安装向导”(注意,要完全匹配的)
你可以将‘腾讯QQ2009 安装向导’安装定义为一个字符串变量$hd
然后你后面的命令都可以简化为

$hd="腾讯QQ2009 安装向导"
controlclick($hd,"安装腾讯软件管理器",1037)
controlclick($hd","安装QQ工具栏",1007)
注意双引号问题哦,在controlclick等命令里新手容易$hd误加双引号导致语法错误
发表于 2009-4-19 00:24:56 | 显示全部楼层
这样就简化了代码,自己看起来也干净利落
正如很多大侠写得代码都是不罗嗦恰到好处
多谢借鉴
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-1 23:29 , Processed in 0.091483 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表