找回密码
 加入
搜索
查看: 10238|回复: 17

[图形处理] 請教~無ID按鈕如何判定是否存在,並按下~

 火.. [复制链接]
发表于 2011-6-28 16:23:54 | 显示全部楼层 |阅读模式
(如題)請教~無ID按鈕如何判定是否存在,並按下~
小弟試用MouseClick 及ControlClick,但都無法判定是否存在並按下,
勞架各路高手解迷惑~ 謝謝

本帖子中包含更多资源

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

×
发表于 2011-6-28 17:32:16 | 显示全部楼层
不是标准GUI的话,不一定能取到信息,试试利用相对坐标点击吧
发表于 2011-6-28 17:53:34 | 显示全部楼层
用A版的窗口信息探测器以及ControlClick
 楼主| 发表于 2011-6-28 21:06:44 | 显示全部楼层
回复 3# papapa314

謝謝提供資訊~但~
小弟試用A板及ControlClick,但都無法判定是否存在並點擊~  
 楼主| 发表于 2011-6-28 21:10:23 | 显示全部楼层
回复 2# 飘云

謝謝提供思路~
小弟試用MouseClick,可點擊坐標,但無法判定是否存在~
還有其它方式(指令or程序)可研判嗎?
发表于 2011-6-29 09:24:57 | 显示全部楼层
这种情况,大概可能也许,能用颜色来判断吧,同时对数块坐标的颜色色值进行判断,都没错就是存在,有错了说明有变化了呗
 楼主| 发表于 2011-6-29 10:02:45 | 显示全部楼层
回复 6# 飘云


    圖一及圖二上有附au3 info資訊,可看出坐標顏色...沒變~ @@"
圖一鼠標在"同意",圖二鼠標在"取消"~
发表于 2011-6-29 18:34:14 | 显示全部楼层
本帖最后由 飘云 于 2011-6-29 18:53 编辑

多块色值,不是取一块,再说每个像素点的色值是有微小差异的,另外色值是用来判断按钮存不存在,色值对了就说明存在呗,点击就是MouseClick的事了
 楼主| 发表于 2011-7-2 05:28:32 | 显示全部楼层
本帖最后由 hifi 于 2011-7-2 09:41 编辑

回复 8# 飘云


    感謝提供方式! 小弟用PixelGetColor並無法取回正確色值,會去抓到底層的色值
发表于 2011-7-2 05:53:42 | 显示全部楼层
本帖最后由 netegg 于 2011-7-2 05:55 编辑

api枚举界面子窗体,获取各窗体类别及句柄,然后可以不少参考信息,匹配下应该就可以了
发表于 2011-7-2 12:45:02 | 显示全部楼层
如果在那个地方鼠标状态有变化的可以通过获取鼠标状态来判断!
MouseGetCursor
 楼主| 发表于 2011-7-2 17:31:20 | 显示全部楼层
回复 11# 星雨朝霞


    經測試mouse並無變化 @@ " ,但按照有變色澤,就是取不到色值  
 楼主| 发表于 2011-7-2 19:03:18 | 显示全部楼层
回复 10# netegg

感謝提供思維~
    請提供據体指令及作法~新手上路,請多指教~   
发表于 2011-7-2 19:20:56 | 显示全部楼层
回复 13# hifi
_WinAPI_EnumChildWindows的示例
#Include <Array.au3>
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)

Global $hForm, $Data

$hForm = GUICreate('MyGUI', 310, 360)
GUISetFont(8.5, 400, 0, 'MS Shell Dlg', $hForm)
GUICtrlCreateGroup('Group', 10, 10, 140, 95)
GUICtrlCreateCheckbox('Check1', 22, 26, 120, 23)
GUICtrlCreateCheckbox('Check2', 22, 49, 120, 23)
GUICtrlCreateCheckbox('Check3', 22, 72, 120, 23)
GUICtrlCreateGroup('Group', 160, 10, 140, 95)
GUICtrlCreateRadio('Radio1', 172, 26, 120, 23)
GUICtrlCreateRadio('Radio2', 172, 49, 120, 23)
GUICtrlCreateRadio('Radio3', 172, 72, 120, 23)
GUICtrlCreateButton('OK', 120, 330, 70, 23)
GUICtrlCreateTab(10, 118, 292, 206)
GUICtrlCreateTabItem('Tab1')
GUICtrlCreateTabItem('Tab2')
GUICtrlCreateTabItem('')
GUISetState()

$Data = _WinAPI_EnumChildWindows($hForm)
If IsArray($Data) Then
  _ArrayDisplay($Data, '_WinAPI_EnumChildWindows')
EndIf

Do
Until GUIGetMsg() = -3
 楼主| 发表于 2011-7-3 07:44:18 | 显示全部楼层
回复 14# netegg

    謝謝提供線索~
  api 不太了解~run後~這是二維last~但怎套入現有程序?~努力學習中~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-14 14:14 , Processed in 0.084127 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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