【已解决】非标准控件如何切换窗口列表
本帖最后由 itzyx 于 2021-3-23 15:50 编辑如图所示,有两个窗口列表,点击下面 属性列表或者视频列表 可以切换窗口,我用 A大的窗口信息探测器获取 窗口标题:高速系统 控件类名:Afx:ControlBar:1a1c0000:8:10003:101 但是我尝试了很多方法都不能切换列表窗口 (目前用的笨方法 模拟鼠标点击,但是容易出错,希望能够去鼠标化)。 希望各位大佬能帮忙指点一下,万分感谢!
自己顶一下:face (36): 这种非大众软件,没有调试信息,没有代码,也就我会帮你看看
顺序、过程 方法都很重要,比如首先看获取的信息有没有用,有没有获取到句柄
Local $hC = ControlGetHandle('高速系统', '', 'Afx:ControlBar:1a1c0000:8:10003:101')
MsgBox(0, $hC, IsHWnd($hC)) afan 发表于 2021-3-22 23:45
这种非大众软件,没有调试信息,没有代码,也就我会帮你看看
顺序、过程 方法都很重要,比如首先看获取的 ...
实在感谢A大,我的问题95%以上都是A大帮我解决的,泪目!!
我刚试了一下 可以获取到句柄 ,这两个列表是窗口的列表,可以隐藏,也可以停靠, 一般是停靠在窗口的右界面,两个列表可以点击切换,用A大你的 Au3.WProbe 获取控件类名,截取的范围不同分别可以获取类名:Afx:ControlBar:29720000:8:10003:101 Afx:TabWnd:29720000:8:10003:101 SysListView321 ,现在我想每次可以切换窗口列表,这样我就可以点击 SysListView321 控件,进行操作了
itzyx 发表于 2021-3-23 09:45
实在感谢A大,我的问题95%以上都是A大帮我解决的,泪目!!
我刚试了一下 可以获取到句柄 ,这两个列表 ...
如果与 Au3.WProbe 里面显示的控件句柄一致那就有可操作的可能了,你可以试试以下:
将靶标拖到你需要点击的位置,确保坐标栏处于“控件”模式,复制坐标,替换下面的 x, y,$hC 为上面获取的句柄
ControlClick($hC, '', '', 'Left', 1, x, y)
如果没反应,可以试试前面加一行激活 高速系统 窗口 afan 发表于 2021-3-23 11:17
如果与 Au3.WProbe 里面显示的控件句柄一致那就有可操作的可能了,你可以试试以下:
将靶标拖到你需要点 ...
验证果然有效,想太复杂了,居然忘了控件点击也可以去鼠标化, 到时候加一个判断,是否点击正确这样应该也可以确保不出错了 ,太太太 感谢A大了! afan 发表于 2021-3-23 11:17
如果与 Au3.WProbe 里面显示的控件句柄一致那就有可操作的可能了,你可以试试以下:
将靶标拖到你需要点 ...
A大麻烦再请教一下,我发现这个控件类名 每次打开软件会变化,比如这次是:Afx:TabWnd:29720000:8:10003:101下次就变成了:Afx:TabWnd:9af30000:8:10003:101 然后发现规律就TabWnd 后面的8位字符串会变化 我用 正则表达式 表示控件类名+:8:10003:101],怎么好像不行啊 。 itzyx 发表于 2021-3-24 11:13
A大麻烦再请教一下,我发现这个控件类名 每次打开软件会变化,比如这次是:Afx:TabWnd:29720000:8:10003: ...
如果只是 "TabWnd 后面的8位字符串会变化" 的话,上面的应该能匹配,但看不到你的完整代码,没法说,有时候都是些简单的错误。
这种控件应该有 NAME,可以试试用自带的探测器查看,这个 NAME 是不变的。 afan 发表于 2021-3-24 11:48
如果只是 "TabWnd 后面的8位字符串会变化" 的话,上面的应该能匹配,但看不到你的完整代码,没法说,有时 ...
明白了,代码没错,是因为 Class:Afx:TabWnd:9af30000:8:10003:10ClassnameNN: Afx:TabWnd:9af30000:8:10003:101两个区别我把 Instance: 1也写进去了 , 顺便问一下,
获取控件坐标的方式 这种写法 对吗 $handle=ControlGetHandle("高速系统", "","") itzyx 发表于 2021-3-24 12:02
明白了,代码没错,是因为 Class:Afx:TabWnd:9af30000:8:10003:10ClassnameNN: Afx:TabWnd:9af30000:8: ...
没试过,但应该正确。坐标固定的话应该可以。 afan 发表于 2021-3-24 12:09
没试过,但应该正确。坐标固定的话应该可以。
好的 感谢A大 {:face (468):} afan 发表于 2021-3-24 12:09
没试过,但应该正确。坐标固定的话应该可以。
A大我一直都在用你的 Au3.WProbe, 感觉非常好用,能不能麻烦问个延伸问题,就是这个Afan - www. autoitx. com 文本 是状态栏文本嘛? 是怎么设置成这样的,感觉好炫酷。
我设置了字体,控件颜色好像都没起作用
#include <GuiStatusBar.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 400, 300)
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)
Local $sFont = "Comic Sans MS"
GUISetFont(-1,6,400,2,$sFont)
Dim $StatusBar1_PartsWidth = [-1]
_GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
_GUICtrlStatusBar_SetText($StatusBar1, @tab&@tab&"BY-ZYX", 0)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd
itzyx 发表于 2021-3-28 11:57
A大我一直都在用你的 Au3.WProbe, 感觉非常好用,能不能麻烦问个延伸问题,就是这个Afan - www. autoitx. ...
只是简单的禁用状态(128) 就行了
GUICreate('')
GUICtrlCreateLabel('autoitx.com', 100, 100)
GUICtrlSetState(-1, 128)
GUISetState()
While GUIGetMsg() <> -3
WEnd afan 发表于 2021-3-28 12:02
只是简单的禁用状态(128) 就行了
搜嘎,谢谢A大居然还能这样用,学到了
页:
[1]