找回密码
 加入
搜索
查看: 43171|回复: 79

[原创] 简易自动安装软件的通用au3模板,编译后也可通用

[复制链接]
发表于 2008-5-5 17:35:17 | 显示全部楼层 |阅读模式
文件内容来自《软件疯狂装》v1.22中导出exe模块中的文件
如果想更快的制作这种配置文件格式,看原贴《软件疯狂装》v1.22(含下载地址)
http://www.autoitx.com/forum.php?mod=viewthread&tid=206
录制教程贴:
http://www.autoitx.com/forum.php?mod=viewthread&tid=386
#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=Setup.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_Res_Comment=发布网址:bbs.deepin.org
#AutoIt3Wrapper_Res_Description=软件疯狂装 v1.22 080328
#AutoIt3Wrapper_Res_Fileversion=1.2.2.0
#AutoIt3Wrapper_Res_LegalCopyright=版权所有 (C) 2008 英特科技
#AutoIt3Wrapper_Res_Field=公司|长葛市古桥英特科技
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Dim $pzwj, $azwj, $i, $j, $zs, $bt1, $bt2, $aj, $azwj, $dqsj, $dqwj[3]
;Opt("TrayMenuMode", 1);当单击托盘图标时不暂停.
Opt("MouseCoordMode", 0);相对激活窗口的坐标
Opt("WinTitleMatchMode", 2);标题的任意子串皆可匹配
Opt("RunErrorsFatal", 0);run严重错误时是不会自动终止
Opt("GUICloseOnESC", 0);在按下 ESC 时不退出
GUISetIcon("%SystemRoot%\system32\SHELL32.dll", 271)
$pzwj = ("setup.ini");$pzwj = (@TempDir & "\setup.ini");FileInstall("setup.ini", $pzwj)
$dqwj = IniReadSectionNames($pzwj)
If @error Then Exit
$azwj = IniRead($pzwj, $dqwj[1], "文件", "")
$dqsj = TimerInit()
If Not FileExists($azwj) Then
MsgBox(0, "不好意思", "没有找到文件:" & $azwj)
Exit
EndIf
ShellExecute($azwj)
For $zs = 1 To 99
If IniRead($pzwj, $dqwj[1], "标题" & $zs, "没有找到内容") = "没有找到内容"  Then ExitLoop
Next
$zs = $zs - 1
ProgressOn($dqwj[1] & "--安装进度表", "", "", 50, 10, 16)
For $i = 1 To $zs
$bt1 = IniRead($pzwj, $dqwj[1], "标题" & $i, "没有找到内容")
$bt2 = IniRead($pzwj, $dqwj[1], "内容" & $i, "没有找到内容")
ProgressSet(Round(($i - 1) / $zs * 100, 0), Round(($i - 1) / $zs * 100, 0) & " %               从托盘菜单退出安装程序" & @LF & @LF & "            作者:星驰周 于2008.4.25", "正在等待的窗口文本:  " & StringLeft($bt2, 16) & "…")
While 1
  If $bt2 <> "没有找到内容"  And WinExists($bt1, $bt2) Then ExitLoop
  If $bt2 = "没有找到内容"  And WinExists($bt1) Then ExitLoop
  Sleep(100)
WEnd
WinActivate($bt1, $bt2)
For $j = 1 To 99
  $aj = IniRead($pzwj, $dqwj[1], "按键" & 100 * $i + $j, "")
  $jian = StringSplit($aj, ",", 0)
  If $jian[1] = "" Then ExitLoop
  If $jian[1] = "坐标:"  Then
   MouseClick("left", $jian[2], $jian[3], 1, 5)
  ElseIf $jian[1] = "延时:"  Then
   Sleep($jian[2])
  Else
   Send($aj)
  EndIf
Next
Next;FileDelete($pzwj)
ProgressSet(100, "共计用时:" & Round(TimerDiff($dqsj) / 1000, 0) & "秒", "安装完毕!")
Sleep(1500)
ProgressOff()
Exit

《setup.ini》文件内容格式:
[千千静听5.1]
文件=ttpsetup.exe
标题1=5.1.0 安装程序
内容1=欢迎使用
按键101=坐标:,368,362
标题2=5.1.0 安装程序
内容2=请仔细阅读以下的"软件使用协议"
按键201=坐标:,373,365
标题3=5.1.0 安装程序
内容3=选择要安装的组件
按键301=坐标:,362,363
标题4=5.1.0 安装程序
内容4=指定安装本软件的目标文件夹
按键401=坐标:,366,365
标题5=5.1.0 安装程序
内容5=我的桌面
按键501=坐标:,77,270
按键502=坐标:,372,366
标题6=5.1.0 安装程序
内容6=立即运行
按键601=坐标:,194,201
按键602=坐标:,366,361
按键603=延时:,4000
标题7=千千静听
内容7=声道
按键701=!{F4}
按键702=!{F4}

编译后也可通用的前提是使用了ini配置文件

如果想专用,就把配置文件编译到程序里

[ 本帖最后由 星驰周 于 2008-5-12 13:55 编辑 ]
发表于 2008-5-5 19:09:38 | 显示全部楼层
编译后也可通用的前提是使用了ini配置文件
这个通用性更大哦
发表于 2008-5-6 09:30:56 | 显示全部楼层
MouseClick改用ControlClick会不会感觉好些?
 楼主| 发表于 2008-5-6 09:46:11 | 显示全部楼层
根据自己的习惯吧

我觉得鼠标坐标来得更直观,那个变量按钮觉得很多人不知道是啥回事,就用了这个,一般是没什么区别的

“二般”的区别应该是,ControlClick可能会在别的窗口后面或者是最小化时还起作用吧,相比还是后者好点
发表于 2008-5-7 12:01:16 | 显示全部楼层
呀,学习了呀,不错的文章,收藏一下。
发表于 2008-5-7 16:16:30 | 显示全部楼层
前来支持一下
发表于 2008-5-7 16:16:34 | 显示全部楼层
前来支持一下
发表于 2008-5-7 16:16:37 | 显示全部楼层
前来支持一下
发表于 2008-5-7 16:16:39 | 显示全部楼层
前来支持一下
发表于 2008-5-7 16:16:43 | 显示全部楼层
前来支持一下
发表于 2008-5-7 16:16:46 | 显示全部楼层
前来支持一下
发表于 2008-5-7 16:16:49 | 显示全部楼层
前来支持一下
发表于 2008-5-7 17:47:17 | 显示全部楼层
我也来顶一下
发表于 2008-5-8 07:37:52 | 显示全部楼层
不错,不过工作量并没有减少
发表于 2008-5-11 02:27:05 | 显示全部楼层
也来顶一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 16:05 , Processed in 0.078552 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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