Как напечатать заголовок активного окна в C - WinAPI - PullRequest
0 голосов
/ 19 февраля 2019

Ну, у меня только один семестр C, так что я немного запутался с HWND и тем, как его использовать.Я просто хочу напечатать активное окно.Я нашел - GetActiveWindow, GetForegroundWindow.

Но я просто не понимаю, как использовать эту функцию для печати этого активного окна.

Я пытался сделать что-то вроде.

HWND GetActiveWindow();
printf("%s", GetActiveWindow);

Но это, вероятно, плохое использование и не работает.
Если кто-то может дать мне рабочий пример, я буду очень благодарен.

Ответы [ 2 ]

0 голосов
/ 19 февраля 2019

HWND - это ручка .Он имеет целочисленное значение, а не строковое значение.Если вы намереваетесь распечатать заголовок окна, вы можете использовать функцию GetWindowText, чтобы получить заголовок из HWND:

void printWindow(HWND hWnd)
{
    DWORD dwLen = GetWindowTextLengthW(hWnd);
    WCHAR *wszTitle = HeapAlloc(GetProcessHeap(), 0, (dwLen + 1) * sizeof(WCHAR));
    if(wszTitle == NULL)
    {
        return;
    }
    GetWindowTextW(hWnd, wszTitle, dwLen + 1);

    wprintf(L"%s\n", wszTitle);

    HeapFree(GetProcessHeap(), 0, wszTitle);
}
0 голосов
/ 19 февраля 2019
TCHAR buf[256];

GetWindowText( GetActiveWindow(), buf, sizeof buf / sizeof *buf );
wsprintf( TEXT( "Window text: %s\n" ), buf );
...