#include <Windows.h>
typedef struct ST_WNDINFO
{
HWND hWnd;
DWORD dwProcessId;
}WNDINFO, *LPWNDINFO;
HWND GetProcessMainWnd(const DWORD dwProcessId)
{
WNDINFO wndInfo;
wndInfo.hWnd = nullptr;
wndInfo.dwProcessId = dwProcessId;
::EnumWindows([](HWND hWnd, LPARAM lParam) -> BOOL
{
DWORD dwProcessId = 0;
::GetWindowThreadProcessId(hWnd, &dwProcessId);
const auto pInfo = reinterpret_cast<LPWNDINFO>(lParam);
if (dwProcessId == pInfo->dwProcessId)
{
pInfo->hWnd = hWnd;
return FALSE;
}
return TRUE;
}, reinterpret_cast<LPARAM>(&wndInfo));
return wndInfo.hWnd;
}
通过Process ID 获取进程主窗口句柄
最新推荐文章于 2025-07-10 17:20:09 发布
本文介绍了一个C++函数,该函数通过枚举所有窗口并检查每个窗口所属的进程ID来找到指定进程的主窗口句柄。使用了Windows API函数进行实现。
1440

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



