找回密码
 加入
搜索
查看: 3189|回复: 13

[网络通信] 【已解决】非标准控件如何切换窗口列表

[复制链接]
发表于 2021-3-20 14:15:04 | 显示全部楼层 |阅读模式
本帖最后由 itzyx 于 2021-3-23 15:50 编辑


如图所示,有两个窗口列表,点击下面 属性列表或者视频列表 可以切换窗口,我用 A大的窗口信息探测器获取    窗口标题:高速系统   控件类名:Afx:ControlBar:1a1c0000:8:10003:101   但是我尝试了很多方法都不能切换列表窗口   (目前用的笨方法 模拟鼠标点击,但是容易出错,希望能够去鼠标化)。 希望各位大佬能帮忙指点一下,万分感谢!

本帖子中包含更多资源

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

×
 楼主| 发表于 2021-3-22 22:58:04 | 显示全部楼层
自己顶一下  
发表于 2021-3-22 23:45:24 | 显示全部楼层
这种非大众软件,没有调试信息,没有代码,也就我会帮你看看
顺序、过程 方法都很重要,比如首先看获取的信息有没有用,有没有获取到句柄
Local $hC = ControlGetHandle('高速系统', '', 'Afx:ControlBar:1a1c0000:8:10003:101')
MsgBox(0, $hC, IsHWnd($hC))
 楼主| 发表于 2021-3-23 09:45:51 | 显示全部楼层
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 控件,进行操作了

本帖子中包含更多资源

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

×
发表于 2021-3-23 11:17:56 | 显示全部楼层
itzyx 发表于 2021-3-23 09:45
实在感谢A大,我的问题95%以上都是A大帮我解决的,泪目!!
我刚试了一下 可以获取到句柄 ,这两个列表 ...

如果与 Au3.WProbe 里面显示的控件句柄一致那就有可操作的可能了,你可以试试以下:
将靶标拖到你需要点击的位置,确保坐标栏处于“控件”模式,复制坐标,替换下面的 x, y,$hC 为上面获取的句柄
ControlClick($hC, '', '', 'Left', 1, x, y)
如果没反应,可以试试前面加一行激活 高速系统 窗口

评分

参与人数 1金钱 +30 收起 理由
itzyx + 30 爱死A大

查看全部评分

 楼主| 发表于 2021-3-23 11:51:29 | 显示全部楼层
afan 发表于 2021-3-23 11:17
如果与 Au3.WProbe 里面显示的控件句柄一致那就有可操作的可能了,你可以试试以下:
将靶标拖到你需要点 ...

验证果然有效,想太复杂了,居然忘了控件点击也可以去鼠标化, 到时候加一个判断,是否点击正确  这样应该也可以确保不出错了 ,太太太 感谢A大了  !
 楼主| 发表于 2021-3-24 11:13:20 | 显示全部楼层
afan 发表于 2021-3-23 11:17
如果与 Au3.WProbe 里面显示的控件句柄一致那就有可操作的可能了,你可以试试以下:
将靶标拖到你需要点 ...

A大麻烦再请教一下,我发现这个控件类名 每次打开软件会变化,比如这次是:Afx:TabWnd:29720000:8:10003:101  下次就变成了:Afx:TabWnd:9af30000:8:10003:101    然后发现规律就TabWnd 后面的8位字符串会变化   我用 正则表达式 表示控件类名  [REGEXPCLASS:Afx:TabWnd:[\w\d]+:8:10003:101],怎么好像不行啊 。
发表于 2021-3-24 11:48:47 | 显示全部楼层
itzyx 发表于 2021-3-24 11:13
A大麻烦再请教一下,我发现这个控件类名 每次打开软件会变化,比如这次是:Afx:TabWnd:29720000:8:10003: ...

如果只是 "TabWnd 后面的8位字符串会变化" 的话,上面的应该能匹配,但看不到你的完整代码,没法说,有时候都是些简单的错误。
这种控件应该有 NAME,可以试试用自带的探测器查看,这个 NAME 是不变的。
 楼主| 发表于 2021-3-24 12:02:03 | 显示全部楼层
afan 发表于 2021-3-24 11:48
如果只是 "TabWnd 后面的8位字符串会变化" 的话,上面的应该能匹配,但看不到你的完整代码,没法说,有时 ...

明白了,代码没错,是因为 Class:Afx:TabWnd:9af30000:8:10003:10  ClassnameNN:        Afx:TabWnd:9af30000:8:10003:101  两个区别  我把 Instance: 1  也写进去了 , 顺便问一下,
获取控件坐标的方式 这种写法 对吗 $handle=ControlGetHandle("高速系统", "","[X:1630; Y:102; W:290; H:896]")
发表于 2021-3-24 12:09:04 | 显示全部楼层
itzyx 发表于 2021-3-24 12:02
明白了,代码没错,是因为 Class:Afx:TabWnd:9af30000:8:10003:10  ClassnameNN:        Afx:TabWnd:9af30000:8: ...

没试过,但应该正确。坐标固定的话应该可以。
 楼主| 发表于 2021-3-24 12:26:58 | 显示全部楼层
afan 发表于 2021-3-24 12:09
没试过,但应该正确。坐标固定的话应该可以。

好的   感谢A大
 楼主| 发表于 2021-3-28 11:57:19 | 显示全部楼层
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] = [-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

本帖子中包含更多资源

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

×
发表于 2021-3-28 12:02:10 | 显示全部楼层
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
 楼主| 发表于 2021-3-28 12:24:41 | 显示全部楼层
afan 发表于 2021-3-28 12:02
只是简单的禁用状态(128) 就行了

搜嘎,谢谢A大  居然还能这样用,学到了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 02:07 , Processed in 0.094220 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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