mirror of
https://github.com/go-vgo/robotgo.git
synced 2025-05-29 21:43:55 +00:00
33 lines
793 B
C
33 lines
793 B
C
#if defined(IS_WINDOWS)
|
|
BOOL CALLBACK MonitorEnumProc(HMONITOR hMonitor, HDC hdcMonitor, LPRECT lprcMonitor, LPARAM dwData) {
|
|
uint32_t *count = (uint32_t*)dwData;
|
|
(*count)++;
|
|
return TRUE;
|
|
}
|
|
|
|
typedef struct{
|
|
HWND hWnd;
|
|
DWORD dwPid;
|
|
}WNDINFO;
|
|
|
|
BOOL CALLBACK EnumWindowsProc(HWND hWnd, LPARAM lParam){
|
|
WNDINFO* pInfo = (WNDINFO*)lParam;
|
|
DWORD dwProcessId = 0;
|
|
GetWindowThreadProcessId(hWnd, &dwProcessId);
|
|
|
|
if (dwProcessId == pInfo->dwPid) {
|
|
pInfo->hWnd = hWnd;
|
|
return FALSE;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
HWND GetHwndByPid(DWORD dwProcessId) {
|
|
WNDINFO info = {0};
|
|
info.hWnd = NULL;
|
|
info.dwPid = dwProcessId;
|
|
EnumWindows(EnumWindowsProc, (LPARAM)&info);
|
|
|
|
return info.hWnd;
|
|
}
|
|
#endif |