我刚刚用spy ++找到了我需要的窗口的句柄,但spy ++给了我一个数字:
Window Handle: 00010080
我的意思是......通常当你声明一个句柄时,就像:
HWND windowHandle;
问题::所以我猜测00010080
是某种ID
或其他东西,但我如何使用它在我的代码中声明我想要的正确句柄?
我的意思是我不能这样做
HWND windowHandle = 00010080;
(哈哈,如果你知道我的意思,那么如何使用这个数字来获得窗口句柄?)
答案 0 :(得分:2)
Spy ++给你的价值与CreateWindow
等电话返回的价值相同。使用Spy ++获取此值然后在程序中使用它并不是最佳解决方案,因为每次目标应用程序启动时值都会更改。
相反,我建议您使用FindWindow
,FindWindowEx
甚至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