-5

我刚刚使用 spy++ 找到了我需要的窗口句柄,但是 spy++ 给了我一个数字:

Window Handle: 00010080

我的意思是......通常当你声明一个句柄时,它就像:

HWND windowHandle;

问题::所以我猜这00010080是某种ID东西,但是我如何使用它在我的代码中声明我想要的正确句柄?

我的意思是我做不到 HWND windowHandle = 00010080;(哈哈,如果你知道我的意思,那么我如何使用这个数字来获取窗口句柄?)

4

2 回答 2

2

Spy++ 给您的值与调用返回的值相同,例如CreateWindow. 使用 Spy++ 获取此值,然后在您的程序中使用它并不是最佳解决方案,因为每次目标应用程序启动时该值都会发生变化。

相反,我建议您使用FindWindow,FindWindowEx甚至EnumWindows. 这些与 Spy++ 用于获取窗口列表的调用相同。例如,以下将搜索使用类名SomeWindowClass创建的第一个顶级窗口。

HWND hwnd = ::FindWindowEx(NULL, NULL, "SomeWindowClass", NULL);
于 2014-04-20T18:16:36.920 回答
1

HWND 为 HANDLE

HANDLE 是 PVOID

因此,只需将您的号码分配给变量:

HWND hwnd = (HWND) 0x00010080;

不要忘记每个应用程序运行的 hwnd 都是不同的。

参考http://msdn.microsoft.com/en-us/library/windows/desktop/aa383751(v=vs.85).aspx

于 2014-04-20T18:09:53.250 回答