获取其他全部程序的窗口句柄
时间: 2024-03-12 20:48:29 浏览: 149
获取其他程序的窗口句柄需要使用Windows API函数EnumWindows和GetWindowThreadProcessId。下面是一个示例代码,可以获取当前系统中所有窗口的句柄:
```c++
#include <Windows.h>
#include <vector>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
std::vector<HWND>* windows = reinterpret_cast<std::vector<HWND>*>(lParam);
if (IsWindowVisible(hwnd))
{
windows->push_back(hwnd);
}
return TRUE;
}
int main()
{
std::vector<HWND> windows;
EnumWindows(EnumWindowsProc, reinterpret_cast<LPARAM>(&windows));
for (auto hwnd : windows)
{
// Do something with window handle
}
return 0;
}
```
该程序会遍历系统中所有可见窗口,并将它们的句柄存储在一个std::vector中。遍历过程中会调用EnumWindowsProc函数,该函数会被传入当前窗口的句柄以及一个指向std::vector的指针,用于存储窗口句柄。在函数体内,如果窗口可见,则将其句柄添加到std::vector中。
阅读全文