#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 获取进程主窗口句柄
最新推荐文章于 2023-11-16 19:07:22 发布