像Spy ++这样的软件如何获取信息?

Mar*_*Tik 3 windows winapi desktop

我正在研究一种用于测试自动化的软件.为了让它工作,需要在桌面和所有打开的窗口上"看看".它需要知道哪些窗口是打开的以及它们包含哪些控件.所以它必须做类似于Spy ++正在做的事情(来自Visual Studio的Spy ++).有谁知道Spy ++如何得到所有信息?有没有可以调用的Windows方法来检索有关打开窗口的信息?

bin*_*bob 8

您可以使用EnumWindows获取所有顶级窗口.在lpEnumFunc你可以调用FindWindowEx来获取每个顶级窗口的子窗口/控件,然后调用任何其他有趣的函数来提供你需要的信息,例如GetClassName,GetClassInfo,GetClientRect等.看看这里了解更多