[自动安装脚本生成器修改版]更新升级测试版
本帖最后由 131738 于 2015-11-24 14:36 编辑需要源码研究的,到:
http://autoitx.com/forum.php?mod=viewthread&tid=23559&fromuid=161
不过是收费的。。。。。。
修改更新如下:
1. 修正捕捉窗口文本过多未截断问题,修改 Run 为相对路径
2. 提取[路径盘符选择辅助窗口]为外部调用程序,减少脚本代码量
3. 添加 组件选择支持
4. 自动脚本调用外部[进程监视]程序,禁止目标程序弹出的网页和其它弹窗。
此程序借用并修改自超级版主 pusofalse 的进程拦截代码,并得到超版 pusofalse 修改指教,
在此感谢超版 pusofalse 的帮助!!!
5. 精简程序所需包含文件,使程序减少 100 kb 左右,因此怀疑 au3 的编译程序是否将包含文件
全部内容都打包压缩到 exe 文件中了。。。不是按需提取么?。。。
6. 添加代码框折叠/展开功能,优化部分代码。。。
7. 添加工具窗口拖动功能
8. 附加[向导演示.exe]程序,点击本程序的 ? 按钮,自定启动该程序,按提示熟悉本工具的使用方法!
9. 脱离 Autoit 安装环境
所谓测试版,主要指程序组件选择和进程监视两大项的测试,!欢迎反馈应用效果和问题!!!
工具主程序名:Auto_Code.exe 路径辅助程序名:GetDrive.exe 进程监视程序名:ProcessMonitor.exe
根据 7 楼的反馈,修改存在子窗句柄时不能捕捉窗口标题的BUG,
千千静听的顶部图片上的文本右键不会有反应,请右键捕捉顶部图片下方文本!!!
2011-03-24 第三次修改更新:
1. 修改进程监视代码,使监视更可靠一些
目前关闭网页仅界定为微软的 IE 浏览器,希望正式版能支持系统默认浏览器吧!
2. 精简操作步骤,简化组件操作代码
下载最下面一个附件:
可以做沙发啊,头一次啊 很好,前面那个就是文字 拦多了,这次我再测试下。 加油,非常欣赏你的努力,这个语言,最好的地方就是帮我们方便了安装,不至于 装一堆 广告插件,感恩。 雖然目前用不到這類型的程式
可是對於電腦資訊收集這方面剛好有興趣
先來看看源馬囉 支持。下载测试 测试结果,安装千千静听-579.exe,不能获取窗口标题栏文言字。编译不成功
安装自动化,对于我们常在企业跟别人 装软件来说 ,方便多了。 好好学习 天天向上
谢谢了 下载试用下 本帖最后由 131738 于 2011-3-17 17:26 编辑
测试结果,安装千千静听-579.exe,不能获取窗口标题栏文言字。编译不成功
aqtd 发表于 2011-3-16 09:35 http://www.autoitx.com/images/common/back.gif
右键点击按钮能捕捉到窗口标题,发现组件选择不支持,我再看看什么原因!
已修复!!! 本帖最后由 131738 于 2011-3-17 17:25 编辑
测试结果,安装千千静听-579.exe,不能获取窗口标题栏文言字。编译不成功
aqtd 发表于 2011-3-16 09:35 http://www.autoitx.com/images/common/back.gif
测试发现右键点击获取到 3 段句柄,分别为 控件句柄 | 子窗句柄 |父窗句柄 ,
而我原设计为只处理 2 段句柄,这样就丢掉了父窗句柄,已修复!!! 回复 7# aqtd
已修改,再下载测试。。。 回复 7# aqtd
试试这段代码看。。。注意修改包含文件路径。。。
#AutoIt3Wrapper_outfile = ttpsetup_zd.exe
#AutoIt3Wrapper_Res_Description = 软件: 自动安装
#AutoIt3Wrapper_Res_Comment = 脚本生成于: 2011年 03月 16日
#Include <G:\Auto_Code\Resource\GuiLVTV.au3>
Opt("MouseCoordMode", 0)
Global $hListView, $Path_Fitx, $Path_Fit, $Nem_Path
$Path_Fitx = StringInStr ( ClipGet(), ":", 2 )
If $Path_Fitx = 0 Then
$Path_Fit = ""
Else
$Path_Fit = ClipGet()
EndIf
If FileExists("G:\Auto_Code\temp.txt") Then FileDelete("G:\Auto_Code\temp.txt")
$file = FileOpen("G:\Auto_Code\temp.txt", 1)
FileWriteLine($file, "ttpsetup.exe")
FileWriteLine($file, "ttpsetup_zd.exe")
FileClose($file)
Run(@ScriptDir &"\ttpsetup.exe")
WinWait("千千静听 5.7正式版 安装程序 Unicode","欢迎使用 千千静")
WinActivate("千千静听 5.7正式版 安装程序 Unicode","欢迎使用 千千静")
Sleep(250)
ControlClick( "千千静听 5.7正式版 安装程序 Unicode", "","Button2" )
WinWait("千千静听 5.7正式版 安装程序 Unicode","请仔细阅读以下的")
WinActivate("千千静听 5.7正式版 安装程序 Unicode","请仔细阅读以下的")
Sleep(250)
ControlClick( "千千静听 5.7正式版 安装程序 Unicode", "","Button2" )
WinWait("千千静听 5.7正式版 安装程序 Unicode","选择要安装的组件")
WinActivate("千千静听 5.7正式版 安装程序 Unicode","选择要安装的组件")
$TV_h = ControlGetHandle("千千静听 5.7正式版 安装程序 Unicode", "Tree1", "SysTreeView321")
$First = _GUICtrlTreeView_GetFirstItem($TV_h)
_GUICtrlTreeView_EnsureVisible($TV_h, $First)
Opt("MouseClickDelay", 600)
$Pos_String = StringTrimRight("64,23|", 1)
$Pos_Array = StringSplit($Pos_String, "|", 1)
For $i = 1 To $Pos_Array
$Pos_Temp = StringSplit($Pos_Array[$i], ",")
$TV_Item_h = _GUICtrlTreeView_HitTestItem($TV_h, $Pos_Temp, $Pos_Temp)
_GUICtrlTreeView_ClickItem($TV_h, $TV_Item_h, "left", False)
_GUICtrlTreeView_SetFocused($TV_h, $TV_Item_h, True)
If _GUICtrlTreeView_GetChildren($TV_h, $TV_Item_h) = True Then
_GUICtrlTreeView_Expand($TV_h, $TV_Item_h, True)
_GUICtrlTreeView_SelectItem($TV_h, $TV_Item_h, $TVGN_FIRSTVISIBLE)
Else
_GUICtrlTreeView_SelectItem($TV_h, $TV_Item_h, $TVGN_FIRSTVISIBLE)
If _GUICtrlTreeView_GetChecked($TV_h, $TV_Item_h) = True Then
_GUICtrlTreeView_SetChecked($TV_h, $TV_Item_h, False)
Else
_GUICtrlTreeView_SetChecked($TV_h, $TV_Item_h, True)
EndIf
EndIf
Next
MouseClick ( "left",65, 142, 1, 50 )
MouseClick ( "left",65, 160, 1, 50 )
MouseClick ( "left",65, 172, 1, 50 )
MouseClick ( "left",63, 190, 1, 50 )
MouseClick ( "left",63, 205, 1, 50 )
MouseClick ( "left",63, 222, 1, 50 )
MouseClick ( "left",64, 237, 1, 50 )
MouseClick ( "left",64, 254, 1, 50 )
MouseClick ( "left",64, 269, 1, 50 )
MouseClick ( "left",64, 285, 1, 50 )
$Pos_String = StringTrimRight("81,187|", 1)
$Pos_Array = StringSplit($Pos_String, "|", 1)
For $i = 1 To $Pos_Array
$Pos_Temp = StringSplit($Pos_Array[$i], ",")
$TV_Item_h = _GUICtrlTreeView_HitTestItem($TV_h, $Pos_Temp, $Pos_Temp)
_GUICtrlTreeView_ClickItem($TV_h, $TV_Item_h, "left", False)
_GUICtrlTreeView_SetFocused($TV_h, $TV_Item_h, True)
If _GUICtrlTreeView_GetChildren($TV_h, $TV_Item_h) = True Then
_GUICtrlTreeView_Expand($TV_h, $TV_Item_h, True)
_GUICtrlTreeView_SelectItem($TV_h, $TV_Item_h, $TVGN_FIRSTVISIBLE)
Else
_GUICtrlTreeView_SelectItem($TV_h, $TV_Item_h, $TVGN_FIRSTVISIBLE)
If _GUICtrlTreeView_GetChecked($TV_h, $TV_Item_h) = True Then
_GUICtrlTreeView_SetChecked($TV_h, $TV_Item_h, False)
Else
_GUICtrlTreeView_SetChecked($TV_h, $TV_Item_h, True)
EndIf
EndIf
Next
MouseClick ( "left",64, 188, 1, 50 )
MouseClick ( "left",64, 204, 1, 50 )
$Pos_String = StringTrimRight("49,203|", 1)
$Pos_Array = StringSplit($Pos_String, "|", 1)
For $i = 1 To $Pos_Array
$Pos_Temp = StringSplit($Pos_Array[$i], ",")
$TV_Item_h = _GUICtrlTreeView_HitTestItem($TV_h, $Pos_Temp, $Pos_Temp)
_GUICtrlTreeView_ClickItem($TV_h, $TV_Item_h, "left", False)
_GUICtrlTreeView_SetFocused($TV_h, $TV_Item_h, True)
If _GUICtrlTreeView_GetChildren($TV_h, $TV_Item_h) = True Then
_GUICtrlTreeView_Expand($TV_h, $TV_Item_h, True)
_GUICtrlTreeView_SelectItem($TV_h, $TV_Item_h, $TVGN_FIRSTVISIBLE)
Else
_GUICtrlTreeView_SelectItem($TV_h, $TV_Item_h, $TVGN_FIRSTVISIBLE)
If _GUICtrlTreeView_GetChecked($TV_h, $TV_Item_h) = True Then
_GUICtrlTreeView_SetChecked($TV_h, $TV_Item_h, False)
Else
_GUICtrlTreeView_SetChecked($TV_h, $TV_Item_h, True)
EndIf
EndIf
Next
MouseClick ( "left",64, 222, 1, 50 )
MouseClick ( "left",64, 239, 1, 50 )
MouseClick ( "left",64, 254, 1, 50 )
MouseClick ( "left",64, 271, 1, 50 )
MouseClick ( "left",63, 287, 1, 50 )
MouseClick ( "left",63, 304, 1, 50 )
MouseClick ( "left",63, 317, 1, 50 )
再次下个,上面那个写得不好 不错真不错,项一下