本帖最后由 afan 于 2024-3-25 10:58 编辑
这是一个探测窗口控件的小工具,类似于Au3自带的窗口信息工具Au3Info,加强了部分功能,比如可以检索窗口的全部控件及关系
窗口,并可以主动显示其坐标等信息;可在全屏置顶的窗口用快捷键探测等。同时特别加强了易操作性。以下简单介绍下使用方法:
1,按住鼠标左键拖动靶心图标(或按Ctrl+F9)至目标窗口,随即会出现红色界标线包围整个窗口或某控件,在需要探测的窗口或控件上
松开鼠标按键(或再按Ctrl+F9或Esc),本工具会显示窗口及控件的相关信息,如需比较详细的内容可点击“开详情”查看;
2,如果控件存在有效的控件文本,会在“控件类”下方显示深灰色的信息条,其上会显示控件文本的部分(或全部)字符;
如果同时还存在快捷键的字符时,会在深灰色的信息条后面加显一个颜色稍浅的信息条,其上为键名;
左键单击可分别复制这两项的字符串(注:快捷键键名前会自动加上“!”,方便使用Send之类函数)
3,在“控件”栏目处单击右键可在“控件”、“客户”、“屏幕”循环切换坐标方式;
“控件”处的坐标为松开鼠标左键时的相对于控件范围的坐标,对于无具体ID的控件的仍可尝试使用此坐标进行 ControlClick 点击;
“用户”处的坐标为松开鼠标左键时的相对于窗口客户区的坐标,使用此坐标方式时需先用 Opt('MouseCoordMode', 2)
“屏幕”处的坐标为松开鼠标左键时的屏幕绝对坐标,如果之前更改过MouseCoordMode,使用此坐标时需 Opt('MouseCoordMode',1)
4,在下拉框中有控件的数量及相关信息,在控件类别名后面有“=1”或“=0”的字样,分别代表在当前的窗体中控件可见或不可见;
在下拉框中选择某项即可在窗体中闪烁界标线,可见控件为蓝色,不可见控件为墨绿色。
5,左键点击各栏目(有数据时)可复制其内容到剪贴板,方便粘贴使用(按住鼠标可持续显示,方便查阅);
在“窗口类”或“控件类”栏目上(有数据时)点击右键将复制该类的高级模式到剪贴板;
6,关系窗为当前探测的窗口与之同进程的关系窗口,对于窗体内嵌或外挂了子窗口都可以一览全景;
如果探测到的为子窗口还会显示其父窗口句柄,当然父窗口也会在其关系窗中有详细信息;
7,本工具仅在32位 WinXP sp3 中进行过测试,不保证其它系统能正常使用,如有问题请反馈。
举个用 ControlClick 点击无具体控件ID的简单例子。比如说你要打开一个文件夹,或者桌面的某个快捷方式(当然这里不准使用Run或ShellExecute方式),如何操作?用 MouseClick 可以,不过,鼠标移过去了,影响用户其它工作,且需要在桌面可见的情况下。用 ControlClick 操作?那些图标并无具体控件 ID ,怎么点击?当然就要用到 ControlClick 后面的控件坐标参数了。
以下为双击桌面第一个图标的例子。用探测器得到桌面标题为“Program Manager”, 控件类名为“SysListView321”,控件坐标为“36, 31”:(注意,这里是XPsp3的探测结果,Win7可能不同;桌面第一个图标的坐标也可能不同)
Sleep(2000)
ControlClick ('Program Manager', '', 'SysListView321', 'left', 2, 36, 31)
结果就是,就算桌面不可见,仍可执行双击打开。
更新历史:
240315 更新 1.0 版
[修正]对于.NET框架的窗体可能无法正确识别控件
[修改]在使用热键而非拖动靶标操作时,光标也会随之切换为靶标/正常
[新增]在窗口“控件坐标”栏目下方显示当前坐标的颜色及值,点击可复制
240313 更新 0.9 版
[修改]窗口不再分割为两部分,意义不大,整合为一
[修改]布局细微调整,并适配支持高DPI
240312 更新 0.8 版
[修改]Input控件设为只读,防止误改
[新增]详情窗底部增加输出信息,点击可显示可复制
240220 更新 0.7.1 版
[修正]拖动靶标可能造成鼠标光标变小等异常问题
210309 更新 0.7 版
[修改]程序标题右侧添加当前的热键(有时候系统热键多了容易忘……)
[修改]使用热键捕获时,若出现闪烁框后3秒未移动鼠标则自动选定,适合捕获某些若按键或移动鼠标就消失或改变的情形
[修改]右键点击“窗口类”以复制数据时,若标题文本非空,则复制时以循环切换 添加/不添加 标题文本
[修改]对于短暂捕获后消失的窗口,复制控件信息时亦可,不会再提示“目标窗口已关闭,无法使用高级模式”
160112 更新 0.6.5 版
[新增]为避免热键 Ctrl+F9 与系统或其它程序冲突,可自行创建配置文件“WPConfig.ini”, 在“Options”字段中添加“HK=^{F9}”,并修改为需要的热键
[修改]界面因系统不同而相应的细微调整
[修改]其它逻辑细微调整
130310 更新 0.6.4 版
[修正]修正一处可能造成程序崩溃的问题
120311 更新 (0.6.3版)
[修正]探测CMD窗口时,因数组错误造成程序退出。
100914 更新 (0.6.2版)
[修正]目标窗口已关闭时,复制类高级模式时的数据参数为空的问题,现已改为关闭时提示无法使用高级模式;
100913 更新 (0.6.1版)
[修改]重写部分探测代码,尽可能探测到的首显控件为可操作控件;
[修改]优化了部分代码,使探测速度更快;
[修正]探测某些悬浮窗可能显示的界标线位置有误;
[修正]在非控件区(如标题栏)仍显示控件相关信息的问题;
[修改]关系窗选择下拉框将默认选中(显示)当前的窗体(之前的版本均为显示“关系窗数量:x”);
[增加]详情版面增加窗口的进程pid及程序路径信息栏(同时取消了重复信息“控件数量”栏目);
100908 更新 (0.5.5版)
[修正]窗口类的高级模式去除接口参数;
[修正]控件文本如果全部是空字符也会显示深灰色的信息条的问题;
[修正]如果下拉选择的控件和上次选择的一样将不会显示线框的问题;
[修改]控件选择下拉框将默认选中(显示)当前的控件(之前的版本均为显示“控件数量:x”);
[增加]在“控件选择下拉框”下方增加Cxx Wxx 的文本信息,C后为控件数,W后为窗体数。
100907 更新 (0.5.2版)
[修改]在“窗口类”或“控件类”栏目上(有数据时)点击右键将复制该类的高级模式到剪贴板;
[增加]在“控件类”栏目下方位置增加了两个可点击复制的信息文本条,便于在关详情时也能进行相关操作。其作用如下:
如果控件存在有效的控件文本,则会显示深灰色的信息条,其上会显示控件文本的部分(或全部)字符;
如果同时还存在快捷键的字符时,会在深灰色的信息条后面加显一个颜色稍浅的信息条,其上为键名;
左键单击可分别复制这两项的字符串(注:快捷键键名前会自动加上“!”,方便使用Send之类函数)
[修改]以前版本在单击复制后会显示1秒的提示,考虑到查阅复制内容的人性化,将显示1秒的提示改为如下:
在鼠标按键按下后会持续显示,直到鼠标按键弹起。(如果按下弹起间隔不足1秒将显示1秒)
100906 更新 (0.5版)
[修正]窗口仅有一个控件时不会显示探测边框线及信息有误;
[修改]控件数量下拉列表排序改为按控件的创建顺序排列;
[修改]左键单击托盘图标显示/隐藏界面,右键单击显示菜单;
[修改]关系窗下拉列表默认显示其关系窗数量;
[增加]在“控件类”栏目上点击右键将复制首个有效的控件文本(如果有)行到剪贴板;
100901 更新 (0.4.8版)
[修改]重新设计详情界面,方便点击复制及浏览;
[修正]窗口无其它控件时(如TrayTip、ToolTip等窗口)不会显示探测边框线及信息有误;
[修改]将坐标切换方式的“界面”2字改为“用户”,使坐标方式更直观,可在“控件”、“用户”、“屏幕”间切换;
[增加]增加一个坐标切换方式“控件”,此方式对于无具体ID的控件的仍可尝试使用此坐标进行 ControlClick 点击;
[增加]界面增加最小化到托盘及托盘图标的相关操作;
[增加]增加捕获如下一些窗口信息:
同进程窗口、父窗口;
窗口文本、窗口隐藏文本;--已去除,没什么用,可以用控件文本取代;
窗口样式、窗口扩展样式;
控件样式、控件扩展样式、控件句柄;
100827 更新 (0.3版)
[增加]增加热键及在置顶窗口中操作,不用拖移靶心,按 Ctrl+F9 可以直接探测,再按一次或按 Esc 可以停止。
100826 小更新 (0.2版)
[修正]探测后的窗口在关闭后选择下拉框会造成界面的问题现已修正。感谢 佐子 发现此Bug
[修改]坐标栏默认改为“界面”即用户坐标,切换方式改为右键点击,左键点击为复制。
[增加]增加窗口标题栏及边框线宽度信息。
其它一些细微的调整
100826 初发布 0.1 版
|