找回密码
 加入
搜索
查看: 1648|回复: 9

[AU3基础] 【已解决】求助: 请问au3可以实现在program file search功能吗?想达到效果如附档

[复制链接]
发表于 2017-9-15 10:45:43 | 显示全部楼层 |阅读模式
本帖最后由 梦想 于 2017-9-19 09:10 编辑

#include <MsgBoxConstants.au3>
Run ("control.exe Appwiz.cpl")
Local $search = WinWait("[CLASS:CabinetWClass]", "", 10)
;Sleep (2000)
Local $focus = ControlFocus($search, "", "DirectUIHWID1")
MsgBox ($MB_SYSTEMMODAL, "", "C:" & $focus)
Local $uu = ControlSend($search, "", "DirectUIHWID1", "Bonjour")
MsgBox ($MB_SYSTEMMODAL, "", "C:" & $uu)
Sleep (2000)
WinClose($search)

请问小弟这样写,为什么不成功呢?希望得到指导,感谢
想达到效果如附档图:

本帖子中包含更多资源

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

×
发表于 2017-9-17 14:17:55 | 显示全部楼层
回复 1# 梦想


    DirectUIHWND的控件基本是虚拟控件,目前好像没有什么好的方法去控制
发表于 2017-9-17 17:07:50 | 显示全部楼层
游客,如果您要查看本帖隐藏内容请回复


win7 32 测试好像没问题

本帖子中包含更多资源

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

×
发表于 2017-9-17 18:19:42 | 显示全部楼层
多谢楼上哥们,,俺比较少玩自动化方面的东东,无知见解见笑了。。

你用的那个udf没有下载,,感觉内置函数能达到的目的用udf有点性能浪费。。所以稍微改了下
#cs

Code by ACN--zghwelcome
modify yamakawa
#ce

Run ("control.exe Appwiz.cpl")
Sleep(2000)
$hWnd = WinGetHandle('[class:CabinetWClass]','')
If $hWnd = 0 Then
        ConsoleWrite("$hwnd is 0" & @CRLF)
        Exit
EndIf

$hWnd_DirectUIHWND = ControlGetHandle($hWnd,'','[CLASS:DirectUIHWND; INSTANCE:1]')
If $hWnd_DirectUIHWND = 0 Then
        ConsoleWrite("$hwnd_directuihwnd is 0" & @CRLF)
        Exit
EndIf

$sSize = ControlGetPos($hWnd_DirectUIHWND,'','')
If @error Then 
        ConsoleWrite("$ssize is 0" & @CRLF)
        Exit
EndIf

ControlClick($hWnd_DirectUIHWND,'','','left',2,$sSize[2]-10,10)
ControlSend($hWnd_DirectUIHWND,"","", 'Apple')

ConsoleWrite("Finished!" & @CRLF)

本帖子中包含更多资源

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

×
发表于 2017-9-17 18:53:06 | 显示全部楼层
回复 4# yamakawa


  之前 ControlSend 对文件夹测试时,经常失效或异常,所以用了别人的UDF
 楼主| 发表于 2017-9-19 09:10:04 | 显示全部楼层
感谢感谢,知道自己的问题点在哪里,感谢
 楼主| 发表于 2017-9-19 17:52:18 | 显示全部楼层
回复 4# yamakawa

请问一下,$sSize[2]-10,10 这个是绝对坐标吗? 是怎么来的呢?
ControlClick($hWnd_DirectUIHWND,'','','left',2,$sSize[2]-10,10)
 楼主| 发表于 2017-9-19 18:10:23 | 显示全部楼层
Local $e = WinGetHandle ("[class:#32770]", "")
  ; MsgBox($MB_SYSTEMMODAL, "", $e)
   Local $button = ControlGetHandle ($e, "", "[CLASS:Button; INSTANCE:1]")
   ;MsgBox($MB_SYSTEMMODAL, "", $button)
   Local $position = ControlGetPos($button, "", "")
   ;MsgBox($MB_SYSTEMMODAL, "", "Position: " &  $position[0] & ", " &  $position[1] & @CRLF & "Size: " &  $position[2] & ", " & $position[3])
   ControlClick ($button, "", "", "right", 1, $position[1]-40, 15)

为什么不能点击OK button?
32658[/attachimg]

本帖子中包含更多资源

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

×
 楼主| 发表于 2017-9-20 11:09:03 | 显示全部楼层
ControlClick ("Confirm Uninstall", "", "[CLASS:Button; TEXT:OK]")
根据文本点击也不行
 楼主| 发表于 2017-9-20 11:09:05 | 显示全部楼层
ControlClick ("Confirm Uninstall", "", "[CLASS:Button; TEXT:OK]")
根据文本点击也不行
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-3-28 21:54 , Processed in 0.077505 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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