声明特定窗口的句柄

时间:2014-04-20 18:06:08

标签: spy++

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

Window Handle: 00010080

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

HWND windowHandle;

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

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

2 个答案:

答案 0 :(得分:2)

Spy ++给你的价值与CreateWindow等电话返回的价值相同。使用Spy ++获取此值然后在程序中使用它并不是最佳解决方案,因为每次目标应用程序启动时值都会更改。

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

HWND hwnd = ::FindWindowEx(NULL, NULL, "SomeWindowClass", NULL);

答案 1 :(得分:1)

HWND是HANDLE

HANDLE是PVOID

所以,只需将您的号码分配给变量:

HWND hwnd = (HWND) 0x00010080;
不要忘记每个应用程序运行的hwnd都不同。

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