星驰周 发表于 2008-5-5 17:35:17

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

文件内容来自《软件疯狂装》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
;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, "文件", "")
$dqsj = TimerInit()
If Not FileExists($azwj) Then
MsgBox(0, "不好意思", "没有找到文件:" & $azwj)
Exit
EndIf
ShellExecute($azwj)
For $zs = 1 To 99
If IniRead($pzwj, $dqwj, "标题" & $zs, "没有找到内容") = "没有找到内容"Then ExitLoop
Next
$zs = $zs - 1
ProgressOn($dqwj & "--安装进度表", "", "", 50, 10, 16)
For $i = 1 To $zs
$bt1 = IniRead($pzwj, $dqwj, "标题" & $i, "没有找到内容")
$bt2 = IniRead($pzwj, $dqwj, "内容" & $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, "按键" & 100 * $i + $j, "")
$jian = StringSplit($aj, ",", 0)
If $jian = "" Then ExitLoop
If $jian = "坐标:"Then
   MouseClick("left", $jian, $jian, 1, 5)
ElseIf $jian = "延时:"Then
   Sleep($jian)
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 编辑 ]

bootmgr 发表于 2008-5-5 19:09:38

编译后也可通用的前提是使用了ini配置文件:face (33):
这个通用性更大哦

aaeeff 发表于 2008-5-6 09:30:56

MouseClick改用ControlClick会不会感觉好些?

星驰周 发表于 2008-5-6 09:46:11

根据自己的习惯吧

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

“二般”的区别应该是,ControlClick可能会在别的窗口后面或者是最小化时还起作用吧,相比还是后者好点

huludao100 发表于 2008-5-7 12:01:16

呀,学习了呀,不错的文章,收藏一下。

setandy 发表于 2008-5-7 16:16:30

前来支持一下

setandy 发表于 2008-5-7 16:16:34

前来支持一下

setandy 发表于 2008-5-7 16:16:37

前来支持一下

setandy 发表于 2008-5-7 16:16:39

前来支持一下

setandy 发表于 2008-5-7 16:16:43

前来支持一下

setandy 发表于 2008-5-7 16:16:46

前来支持一下

setandy 发表于 2008-5-7 16:16:49

前来支持一下

botanycc 发表于 2008-5-7 17:47:17

我也来顶一下

jiexiao 发表于 2008-5-8 07:37:52

不错,不过工作量并没有减少

zspifeng 发表于 2008-5-11 02:27:05

也来顶一下
页: [1] 2 3 4 5 6
查看完整版本: 简易自动安装软件的通用au3模板,编译后也可通用