spy++ Spy++ 是一个由 Microsoft 提供的 Windows 开发工具,它是 Visual Studio 附带的一部分,主要用于调试和分析 Windows 应用程序的窗口和消息。 通过 Spy++,开发人员可以深入了解应用程序的行为,尤其是关于窗口和消息传递的部分。 通过 spy++,可以进行如下定位: 查看窗口结构 这是通过 wine 运行 spy++ 的窗口信息,可以看出,Spy++ 可以列出系统中所有正在运行的窗口,以树状显示窗口层次,可以非常清晰的看到窗口的父子关系 在 Linux 下使用 spy++ spy++ 是一个windows 程序,可以通过 wine 在 Linux 下运行。 .exe 是 64 位程序,根据要调试的 Windows 应用程序是 32 位还是 64 位,启动对应的 spy++ 程序。
常用窗口工具有 spy++ 和 uispy 两种,spy++ 显示的很全,各种窗口都给你展示出来,看着很多很乱,相比来讲 uispy 就比较简洁实用了,只展示主要的窗口,节目很整洁很清晰。 spy++ 工具: windows 技术篇 - spy++工具获取、安装和简单使用,选中windows桌面窗口快速查看窗口属性方法 uispy 获取方法: 小蓝枣的资源仓库,提取码:77nr 运行效果图
用SPY++抓取该窗口(应用窗口),观察该窗口在点击任务栏图标时收到的消息,然后抓取其它正常的窗口,也观察其在同样操作下接收到的消息,然后比较。 SPY++记录窗口消息的方法:右击窗口,选择菜单Messages,然后点击主菜单Messages->Logging Options,选择Messages标签页,点击Select All按钮,点击OK。 SPY++抓取该窗口,发现该窗口是应用窗口的子窗口,右击窗口选择Properties菜单,查看该窗口详细信息,发现窗口的Windows Styles有WS_POPUP,正常应该是WS_CHILDWINDOW
inspect 元素定位工具 常用的一些元素定位工具: SPY++,用于WIN32 API。当SPY++可以显示所有的控件时,访问技术应该选择”win32”。 Inspect.exe:如果Inspect.exe的模式设置为UIA模式,可以比SPY++显示更多的控件,则访问技术应该选择”uia”。
使用 Spy++ 想探究一个界面属于哪个进程,当然少不了 Spy++。现在,我们去 Visual Studio 中找到并打开 Spy++。 ? 于是,我们会看到一个丑的不得了的 Spy++ 的界面: ? 紧接着,我们点击查找窗口( ? )按钮开始查找窗口: ?
这时我们可使用Microsoft Spy++,运行Spy++,按ALT+F3,在弹出的界面中拖动目标图标到程序上即可。
很多时候我们需要获取一些 windows 的窗口信息,这时候 spy++ 是一个非常棒的工具,可以直接选中某个窗口,直接获取它的全部信息!
其次,为了方面查找目标窗口的句柄,可以下载一个微软自家的Spy++,这玩意儿满大街都是。有了它,还能很方便的查看窗体的消息。 找不到就返回0 参数: lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。 lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。 lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。 lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。 find_subHandle(self.Mhandle, [("ComboBoxEx32", 1), ("ComboBox", 0), ("Edit", 0)]) 另外,python中找回来的句柄都是十进制整型,Spy
答案是肯定的,我们先请出我们的神器,Spy++ image.png 将瞄准器拖拽到具体的窗口上,就会得到窗口的句柄,我们可以通过 FindWindowW 或 EnumChildWindows 来实现相同的功能 银企直连正常工作需要两个步骤 启动HTTP服务监听 登录 我们先看看启动HTTP监听按钮 image.png 我们使用spy++抓到了这个ToolBar的句柄 image.png 然后用 spy++ WM_LBUTTONUP ,所以我们需要发送两次事件,当完成这两次发送后,我们可以看到下面的界面 image.png 没错,其实这里是一个坑,启动监听还不好好启动,非得弹出一个消息框,同时伴随着的是spy 因为我们使用的是SendMessage,这是一个同步的过程,因为出现了消息框,所以spy++还未收到返回消息,所以就卡死了。 image.png OK, 我们继续,我们该开始登陆了 image.png 刚才我们 SendMessage 里的WPARAM是1,那么,这个按钮是4 image.png 继续使用 spy++ 发送消息
5.2inspect 元素定位工具常用的一些元素定位工具: SPY++,用于WIN32 API。当SPY++可以显示所有的控件时,访问技术应该选择”win32”。 Inspect.exe:如果Inspect.exe的模式设置为UIA模式,可以比SPY++显示更多的控件,则访问技术应该选择”uia”。 functional-regressional-testing/silktest.asp)Many Others (http://www.testingfaqs.org/t-gui.html)5.4gui inspect tool全家桶1.官方文档中推荐使用spy 如下图所示: 2.下载解压后的各种工具,如下图所示:Spy++ (定位元素工具(win32))Inspect(定位元素工具(uia))UI Spy (定位元素工具)Swapy(可简单生成pywinauto
这时我们可使用Microsoft Spy++,执行Spy++,按ALT+F3,在弹出的界面中拖动目标图标到程序上就可以。
注意:随着版本升级,CAD有可能窗口的组织方式会变化,要结合Spy++等工具查看cad的窗体结构和窗体信息,并且灵活运用VC的断点调试查看FindWindowEx函数是否捕捉到了正确的窗体句柄,才能保证代码正常工作
WinForms 控件和大多数旧的遗留应用程序 uia对应的框架:WinForms、WPF、商店应用程序、Qt5、浏览器 如果无法知道要测试的软件是属于哪种框架,可以使用 Inspect(对应uia) 和 Spy Inspect和Spy++需要自己安装一下 下面是Application对象的主要方法 举例,启动一个微信应用,通过进程号连接,进程号就是在任务管理器里详细信息看到的PID 3.WindowSpecification
本文链接:https://blog.csdn.net/daoer_sofu/article/details/103257899 360桌面助手 使用spy++获取窗口层级关系 ?
另外,vs自带一个spy++的工具,可以探查当前所有窗口的信息,包括注册类名。 FindWindow这个函数检索处理顶级窗口的类名和窗口名称匹配指定的字符串。
首先通过 spy++ 工具定位树控件的类。 然后通过 get_item('\本地计算机 策略\计算机配置\管理模板') 层级定位的方式即可定位到树节点。
Spy++ (定位元素工具(win32)) Inspect(定位元素工具(uia)) UI Spy (定位元素工具) Swapy(可简单生成pywinauto代码) 二、pywinauto操作使用 官方文档中推荐使用spy++和inspect来检查。有人专门整理了一下,放在github上了https://github.com/blackrosezy/gui-inspect-tool。 If it can show more controls and their properties than Spy++, probably the "uia" backend is your choice
WinExec(PChar(cmdLine),SW_HIDE) ; fHwnd:=FindWindow(‘#32770’,nil); //查找到窗口#32770,’#32770‘用Spy (1)任务栏窗体的窗口信息为:(我用spy++查出来的) ①任务栏的窗口类名是:ShellTrayWnd。 ②开始按钮的窗口类名是:Button。
其次,为了方面查找目标窗口的句柄,可以下载一个微软自家的Spy++,这玩意儿满大街都是。有了它,还能很方便的查看窗体的消息。 找不到就返回0 参数: lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。 lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。 lpClassName:字符型,是窗体的类名,这个可以在Spy++里找到。 lpWindowName:字符型,是窗口名,也就是标题栏上你能看见的那个标题。
import win32gui, win32con import pyautogui as pg # 自己的库 from astd.lib.astd_func import find_pic # 窗体标题,用spy