如何向后台窗口发送相对坐标点击和按键
希望能够在执行自动化操作的时候,用户依然能够处理别的事情,所以要对后台窗口进行自动化操作。注意,此窗口不能捕获到窗口里的控件。希望各位大牛能给出一个例子,小弟不胜感激 Local $text = WinGetClassList("所需操作的窗口标题", "")
msgbox(0,"控件列表",$text)
一般这样可以列出很多控件出来,你在之后要用的时候在后面加1,2,3就行了。
比如有5个Button控件,你就可以尝试去点
controlclick("标题","内容","Button1")
controlclick("标题","内容","Button2")
controlclick("标题","内容","Button3")
controlclick("标题","内容","Button4")
controlclick("标题","内容","Button5")
我也是菜鸟,见笑了! 关于自动化接触AU3的新手总会思考这个问题,我原来没有想出答案,现在也想不通 关于自动化接触AU3的新手总会思考这个问题,我原来没有想出答案,现在也想不通 Local $text = WinGetClassList("所需操作的窗口标题", "")
msgbox(0,"控件列表",$text)
一般这样可以列 ...
xlj310 发表于 2012-5-10 16:59 http://www.autoitx.com/images/common/back.gif
窗口没有控件啊(可能因为是自定义的窗口),就是一个窗体,总之我用au3info是没有能捕获控件 本帖最后由 地平线 于 2012-5-10 18:05 编辑
回复 5# gunziyang
能说明白是什么窗口,哪一类控件吗?或者截个图看看。最近在用_SendMessage和_WinAPI,有点心得,或许能给你点意见。 回复gunziyang
能说明白是什么窗口,哪一类控件吗?或者截个图看看。最近在用_SendMessage和_WinAPI,有 ...
地平线 发表于 2012-5-10 17:19 http://www.autoitx.com/images/common/back.gif
oracle 8i客户端的卸载程序 本帖最后由 地平线 于 2012-5-10 19:15 编辑
回复 7# gunziyang
oracle 8i客户端的卸载程序
没用过也没见过这东西。下面的例子给你参考一下。顺便,彗星小助手也是个不错的工具。
#Include <Array.au3>
#Include <WinAPIEx.au3>
#include <SendMessage.au3>
Dim $hwnd
Const $class='ATL:005E9100';类名
Const $name='金山卫士 3.5 ';标题
$hwnd = _WinAPI_FindWindow($class,$name)
;MsgBox(0,"",$hwnd)
Opt('MustDeclareVars', 1)
Global $Data = _WinAPI_EnumChildWindows($hwnd,FALSE )
_ArrayDisplay($Data, '_WinAPI_Enum');所有子窗口或控件的句柄列表
Const $WM_RBUTTONDOWN = 0x204;右键按下
Const $WM_RBUTTONUP = 0x205;右键松开
Const $WM_LBUTTONDOWN = 0x0201;左键按下
Const $WM_LBUTTONUP = 0x0202;左键松开
_SendMessage($Data,0x0201,0,0);点击指定控件
_SendMessage($Data,0x0202,0,0) 回复gunziyang
没用过也没见过这东西。下面的例子给你参考一下。顺便,也是个不错的工具。
地平线 发表于 2012-5-10 19:09 http://www.autoitx.com/images/common/back.gif
金山卫士我没有,我把你这例子用在Firefox上不成功(也没见有啥输出),能不能给个Firefox的例子
我在Firefox上的代码如下:
#Include <Array.au3>
#Include <WinAPIEx.au3>
#include <SendMessage.au3>
Dim $hwnd
Const $class='MozillaWindowClass';类名
Const $name='Mozilla Firefox ';标题
$hwnd = _WinAPI_FindWindow($class,$name)
;MsgBox(0,"",$hwnd)
Opt('MustDeclareVars', 1)
Global $Data = _WinAPI_EnumChildWindows($hwnd,FALSE )
_ArrayDisplay($Data, '_WinAPI_Enum');所有子窗口或控件的句柄列表
Const $WM_RBUTTONDOWN = 0x204;右键按下
Const $WM_RBUTTONUP = 0x205;右键松开
Const $WM_LBUTTONDOWN = 0x0201;左键按下
Const $WM_LBUTTONUP = 0x0202;左键松开
_SendMessage($Data,0x0201,0,0);点击指定控件
_SendMessage($Data,0x0202,0,0) 张嘴比张睛要舒服的都 本帖最后由 地平线 于 2012-5-10 23:46 编辑
回复 9# gunziyang
我不清楚你最后要达到的目标是什么。那只是我提供的一个方法,但并不是万能的。
最后一句应该是:
If IsArray($Data) Then
_ArrayDisplay($Data, '_WinAPI_Enum');所有子窗口的句柄列表
EndIf
只有当$Data是数组类型时才输出列表,FireFox的话用msgbox输出是0。
PS:话说FireFox的那个是网页来的吧,没有控件。{:face (245):} 回复gunziyang
我不清楚你最后要达到的目标是什么。那只是我提供的一个方法,但并不是万能的。
最后一 ...
地平线 发表于 2012-5-10 23:20 http://www.autoitx.com/images/common/back.gif
我的目的就是给后台窗口发送点击和按键啊
Firefox本身并不是网页吧 我的目的就是给后台窗口发送点击和按键啊
Firefox本身并不是网页吧
这个我就不懂了,还是请教大神们吧。或者换其他方法。
页:
[1]