Как найти имя класса и название программы на C ++? - PullRequest
0 голосов
/ 18 января 2011

Вопрос в том, как найти имя класса из запущенных программ и название этих программ.Я знаю, что уже существуют некоторые инструменты сканирования, такие как WinDowse или spy++ от visual studio, но я спрашиваю вас, как сделать программы, подобные тем, которые есть в нашем собственном исходном коде, какую функцию использовать,Есть ли какая-нибудь программа с открытым исходным кодом, которая может помочь?Код приветствуется, ссылка тоже:)

1 Ответ

4 голосов
/ 18 января 2011
  1. Используйте EnumWindows для перечисления всех окон верхнего уровня и получения их дескриптора.

  2. Передайте дескриптор GetWindowText и GetClassName для получения заголовка окна и класса окна соответственно.

Пример:

EnumWindows(EnumProc, 0);

...

BOOL CALLBACK EnumProc(HWND hWnd, LPARAM lParam) {
  TCHAR title[256];
  TCHAR className[256];

  GetWindowText(hWnd, title, 256);
  MessageBox(NULL, title, NULL, MB_OK);

  GetClassName(hWnd, className, 256);
  MessageBox(NULL, className, NULL, MB_OK);

  return TRUE;
}
...