Как получить читаемое имя класса и заголовок из дескриптора HWND? в WinApi c ++ - PullRequest
1 голос
/ 31 декабря 2010

Я использую следующий процесс enumchild для получения hwnd каждого окна, проблема в том, что я не могу каким-то образом обнаружить какую-либо информацию от каждого hwnd, поэтому я могу делать то, что хочу, с теми, которые определяются как те, которые мне нужны ,

Например, как я могу получить имя класса окна и заголовок каждого окна в перечислении ниже?

Я пробовал что-то вроде ..

РЕДАКТИРОВАНИЕ: копия вставлена ​​(если это помогает)

TCHAR cName[MAX_PATH];

BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam) {


 TCHAR cName[MAX_PATH];
 GetClassName(hwnd, cName, _countof(cName));
  cout << cName << endl;

     return TRUE; 
}

int _tmain(int argc, _TCHAR* argv[])
{


    HWND hwnd = FindWindow(0, TEXT("reference"));
    EnumChildWindows(hwnd, EnumChildProc, 0);

    system("PAUSE");
 return 0;
}

Он просто возвращает информацию о дескрипторе hexadec, и каждый раз, когда он один и тот же, разве функция GetClassName не меняет cName на новый дескриптор каждый раз?

Также функция GetClassName возвращает количество символов, записанных в cName, я не понимаю, насколько это полезно для меня? Мне нужно получить мое cName в некотором читаемом формате, чтобы я мог сделать что-то вроде

if (className == TEXT ("classnameiamlookingfor" && hwndtitle = TEXT ("thetitlethatinterestsme")) DOSOMETHINGWITHIT ();

Но все, что я здесь получаю, это шестнадцатеричный беспорядок.

1 Ответ

4 голосов
/ 31 декабря 2010

Разве это не сборка Unicode?

Проверьте снова с ниже:

TCHAR className[MAX_PATH];
GetClassName(hwnd, className, _countof(cName));
_tprintf(cName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...