//通过pid获取窗口句柄
HWND GetHwndByPid(DWORD dwProcessID)
{
HWND h = GetTopWindow(0);
HWND retHwnd = NULL;
while (h)
{
DWORD pid = 0;
DWORD dwTheardId = GetWindowThreadProcessId(h, &pid);
if (dwTheardId != 0)
{
if (pid == dwProcessID && GetParent(h) == NULL && ::IsWindowVisible(h))
{
retHwnd = h; //会有多个相等值
// /*
//char buf[MAX_PATH] = { 0 };
//sprintf_s(buf, "%0x", h);
//MessageBox(NULL, buf, "提示", MB_OK);
// */
}
}
h = GetNextWindow(h, GW_HWNDNEXT);
}
return retHwnd;
}
通过进程pid获取窗口句柄HWND,然后可以通过sendmessage进行交互通讯
最新推荐文章于 2025-09-11 07:56:10 发布
这篇博客介绍了一种使用PID查找并获取对应进程窗口句柄的方法,通过递归遍历窗口及其线程,筛选出与给定进程ID匹配且可见的顶级窗口。
1349

被折叠的 条评论
为什么被折叠?



