3

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

4

2 回答 2

8

您可以使用EnumWindows获取所有顶级窗口。您可以在其中lpEnumFunc调用FindWindowEx来获取每个顶级窗口的子窗口/控件,然后调用任何其他有趣的函数来为您提供所需的信息,例如GetClassNameGetClassInfoGetClientRect等。查看此处了解更多信息

于 2009-04-19T07:26:31.430 回答
4

它被称为windows 钩子。签出 Win32 API SetWindowHookEx

有不同类型的钩子,它们驻留在 DLL 中,并且 Windows 调用 DLL 函数来处理特定线程或同一桌面中所有线程的 Windows 消息类型。

另请在此处查看我在 Windows 挂钩上的相关答案

于 2009-04-19T06:32:49.143 回答