找回密码
 加入
搜索
查看: 3553|回复: 8

[AU3基础] 最新版迅雷7和暴风影音5,怎样编写控件代码

  [复制链接]
发表于 2012-4-12 09:22:01 | 显示全部楼层 |阅读模式
请高手指点:
最新版《迅雷7》和《暴风影音5》,怎样编写控件代码
就是使用“ControlClick”,而不使用“MouseClick
现在的窗口信息工具不能处理了
发表于 2012-4-12 12:21:04 | 显示全部楼层
MouseClick 初级的 比较好用吧,
发表于 2012-4-12 12:22:27 | 显示全部楼层
自己算绝对坐标就可以在其他机器上使用了
(偏移+控件坐标)
发表于 2012-4-12 14:20:07 | 显示全部楼层
是可以编写代码的,虽然不能用常规的窗口判断
下面是我以前编写的一个迅雷7自动安装脚本12年1月5日编写的 对应迅雷 7.24.3312
Opt("WinTitleMatchMode", 3)
Opt("TrayIconDebug",1)
Run("Thunder7.2.4.3312.exe")
$t="迅雷7安装程序"
Global $dir,$j,$j02
$dir=RegRead("HKEY_CURRENT_USER\Software\autoinstall","installdir")
If $dir="" Then
        $dir="C"
EndIf

While 1     ;;;;;循环,直到第一个窗口出现......
        If WinExists($t,"软件许可协议")=1 Then
                ExitLoop
    EndIf
WEnd

Func one()      ;;;;;;;;;;;;;;;欢迎
WinActivate($t,"软件许可协议")
ControlClick($t,"软件许可协议","Button1")
EndFunc
Func two()      ;;;;;;;选项---选择安装路径
WinActivate($t,"")
ControlSetText($t,"","Edit1",$dir&":\Program Files\Thunder Network\Thunder")
EndFunc
While 1
    If WinExists($t,"软件许可协议")=1 Then
                 one()
    ElseIf WinExists($t,"软件许可协议")=0 Then ;第一个窗口消失后,如果没有检测到(因为前面有了循环,所以这时不存在提前判断失误)
                If WinExists($t,"")=1 Then ;如果第二部出来了;;;
                   If ControlCommand($t,"","Edit1","GetLine",1)=$dir&":\Program Files\Thunder Network\Thunder" Then
                          $j=WinActivate("迅雷7","")
                      ExitLoop ;;;检查安装路径,如果不不不不正确,执行下面的 two()
                   Else 
                          two()
                   EndIf
                EndIf
        EndIf
WEnd
Func three()
WinActivate($t,"")
ControlClick($t,"","Button1")
EndFunc
Func four()
WinActivate("迅雷7","")
ControlClick("迅雷7","","Button2")
EndFunc
While 1
        $j02=WinActivate("迅雷7","")
        If WinExists($t,"服务协议")=1 Then
                ExitLoop
        ElseIf         $j02=$j Then 
                three()
        Else
                four()
    EndIf
WEnd


Func six()
WinActivate($t,"服务协议")
ControlClick($t,"服务协议","Button1")
EndFunc
While 1
        If WinExists($t,"服务协议")=1 Then
                six()
        Else
       ExitLoop
    EndIf
WEnd

While 1
    If ControlGetHandle($t,"","Button7") Then
           ProcessClose("Thunder7.2.4.3312.exe")
           ProcessClose("Thunder7.2.4.3312.exe")
           ExitLoop
        EndIf
WEnd

While ProcessExists("Thunder7.2.4.3312.exe")<>0
          ProcessClose("Thunder7.2.4.3312.exe")
WEnd
FileDelete(@DesktopCommonDir & "\迅雷高清影片免费下载.*")
FileDelete(@DesktopDir & "\迅雷高清影片免费下载.*")
FileDelete(@DesktopCommonDir & "\迅雷看看-免费高清电影.*")
FileDelete(@DesktopDir & "\迅雷看看-免费高清电影.*")
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Thunder")
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Thunder")
RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run","Thunder")
Exit
迅雷7的安装时比较淫荡的......
经过测试自动安装没有问题。

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-4-13 09:13:32 | 显示全部楼层
回复 4# 东京恶魔


    谢谢大虾给的代码,避过了最后鼠标点击(多安装多启动什么的),用修改注册表的方法代替,真是超级淫荡!
 楼主| 发表于 2012-4-13 09:15:43 | 显示全部楼层
回复 3# 魔导


    现在用的就是 mouseclick ,有时会失效,想用更有效的代码改进
发表于 2012-4-28 14:33:39 | 显示全部楼层
学习了,纯学习咯
发表于 2012-4-28 14:33:45 | 显示全部楼层
学习了,纯学习咯
发表于 2012-5-11 14:06:31 | 显示全部楼层
感觉得点繁琐,呃……
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-20 13:38 , Processed in 0.084811 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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