找回密码
 加入
搜索
查看: 109939|回复: 309

[原创] [自动安装脚本生成器修改版]更新升级测试版

[复制链接]
发表于 2011-3-15 22:33:39 | 显示全部楼层 |阅读模式
本帖最后由 131738 于 2015-11-24 14:36 编辑

需要源码研究的,到:
http://autoitx.com/forum.php?mod ... 559&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. 精简操作步骤,简化组件操作代码

下载最下面一个附件:





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
li1393591120 + 30 Good

查看全部评分

发表于 2011-3-15 23:14:45 | 显示全部楼层
可以做沙发啊,头一次啊
发表于 2011-3-16 01:24:27 | 显示全部楼层
很好,前面那个就是文字 拦多了,这次我再测试下。
发表于 2011-3-16 01:25:53 | 显示全部楼层
加油,非常欣赏你的努力,这个语言,最好的地方就是帮我们方便了安装,不至于 装一堆 广告插件,感恩。
发表于 2011-3-16 07:25:54 | 显示全部楼层
雖然目前用不到這類型的程式

可是對於電腦資訊收集這方面剛好有興趣

先來看看源馬囉
发表于 2011-3-16 09:00:54 | 显示全部楼层
支持。下载测试
发表于 2011-3-16 09:35:41 | 显示全部楼层
测试结果,安装千千静听-579.exe,不能获取窗口标题栏文言字。编译不成功

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 贡献 +2 收起 理由
131738 + 30 + 2 已修改,再送10分下载测试!

查看全部评分

发表于 2011-3-16 09:36:02 | 显示全部楼层
安装自动化,对于我们常在企业跟别人 装软件来说 ,方便多了。
发表于 2011-3-16 11:35:46 | 显示全部楼层
好好学习 天天向上
谢谢了 下载试用下
 楼主| 发表于 2011-3-16 12:08:05 | 显示全部楼层
本帖最后由 131738 于 2011-3-17 17:26 编辑
测试结果,安装千千静听-579.exe,不能获取窗口标题栏文言字。编译不成功
aqtd 发表于 2011-3-16 09:35


右键点击按钮能捕捉到窗口标题,发现组件选择不支持,我再看看什么原因!

已修复!!!
 楼主| 发表于 2011-3-16 12:31:20 | 显示全部楼层
本帖最后由 131738 于 2011-3-17 17:25 编辑
测试结果,安装千千静听-579.exe,不能获取窗口标题栏文言字。编译不成功
aqtd 发表于 2011-3-16 09:35


测试发现右键点击获取到 3 段句柄,分别为 控件句柄 | 子窗句柄 |父窗句柄 ,
而我原设计为只处理 2 段句柄,这样就丢掉了父窗句柄,已修复!!!
 楼主| 发表于 2011-3-16 17:19:56 | 显示全部楼层
回复 7# aqtd

已修改,再下载测试。。。
 楼主| 发表于 2011-3-16 18:23:55 | 显示全部楼层
回复 7# aqtd

试试这段代码看。。。注意修改包含文件路径。。。
#AutoIt3Wrapper_outfile = ttpsetup_zd.exe
#AutoIt3Wrapper_Res_Description = 软件: [ttpsetup] 自动安装
#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[0]
        $Pos_Temp = StringSplit($Pos_Array[$i], ",")
        $TV_Item_h = _GUICtrlTreeView_HitTestItem($TV_h, $Pos_Temp[1], $Pos_Temp[2])
        _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[0]
        $Pos_Temp = StringSplit($Pos_Array[$i], ",")
        $TV_Item_h = _GUICtrlTreeView_HitTestItem($TV_h, $Pos_Temp[1], $Pos_Temp[2])
        _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[0]
        $Pos_Temp = StringSplit($Pos_Array[$i], ",")
        $TV_Item_h = _GUICtrlTreeView_HitTestItem($TV_h, $Pos_Temp[1], $Pos_Temp[2])
        _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 )
发表于 2011-3-17 06:52:52 | 显示全部楼层
再次下个,上面那个写得不好
发表于 2011-3-17 12:10:06 | 显示全部楼层
不错真不错,项一下
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-29 18:24 , Processed in 0.091756 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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