Как получить имя активного окна?

Я столкнулся с проблемой получения имени активного окна.

Когда я использую этот код:

HWND currentWindowHWND = GetForegroundWindow();
char title[100];
GetWindowTextA(currentWindowHWND, title, 100);

Я получаю что-то вроде: "Как получить имя активного окна? - Переполнение стека - Google Chrome".

Но я хочу получить "Google Chrome", какую функцию WINAPI я должен использовать?

1 ответ

В c В коде используются следующие функции winapi:

DWORD WINAPI GetModuleFileName(
  _In_opt_  HMODULE hModule,
  _Out_     LPTSTR lpFilename,
  _In_      DWORD nSize
);

или же

DWORD WINAPI GetModuleBaseName(
  _In_      HANDLE hProcess,
  _In_opt_  HMODULE hModule,
  _Out_     LPTSTR lpBaseName,
  _In_      DWORD nSize
);

Как получить имя процесса в C++


В c#:

Int32 pid = win32.GetWindowProcessID(hwnd);
Process p = Process.GetProcessById(pid);
string appName = p.ProcessName;

Вы должны получить имя процесса, а не заголовок окна.

Другие вопросы по тегам