Сначала необходимо убедиться, что ваше окно находится на верхнем уровне при использовании EnumWindows
.
Функция имеет 2 параметра:
lpEnumFun c
Тип: WNDENUMPRO C
Указатель на определяемую приложением функцию обратного вызова. Для получения дополнительной информации см. EnumWindowsProc
.
lParam
Тип: LPARAM
Определенное приложением значение, которое должно быть передается в функцию обратного вызова (вы можете передать ей идентификатор процесса)
Вы можете вызвать GetWindowThreadProcessId
в обратном вызове EnumWindowsProc
и сравнить с идентификатором процесса для каждого найденного окна.
Вот пример на C ++:
#include <windows.h>
#include <iostream>
BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
{
DWORD *pid = (DWORD*)(lParam);
DWORD processId;
if (GetWindowThreadProcessId(hwnd, &processId) && processId == *pid)
{
WCHAR Title[MAX_PATH] = { 0 };
GetWindowTextW(hwnd,Title, MAX_PATH);
wprintf(L"Title : %s\n", Title);
SetWindowTextW(hwnd, L"TestTitle");
return FALSE; //end enumerating;
}
// Continue enumerating
return TRUE;
}
int wmain(int argc, wchar_t* argv[])
{
DWORD pid = 11244;//set the process id you have.
BOOL bResult = EnumWindows(EnumWindowsProc,(LPARAM)&pid);
return 0;
}
И для использования EnumWindowsProc
обратного вызова в node.js, вы можете обратиться к этому sample .