如何在 C - WinAPI 中打印活动 window 的标题

How to print the title of the active window in C - WinAPI

好吧,我只有一个学期的 C,所以我对 HWND 以及如何使用它有点困惑。我只想打印 active window。 我发现 - GetActiveWindow, GetForegroundWindow.

但我只是不明白如何使用此功能来打印活动 window。

我正在尝试做类似的事情。

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

但这可能使用不当,无法正常工作。
如果有人能给我一个工作示例,我将非常感激。

TCHAR buf[256];

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

一个HWND是一个handle。它具有整数值,而不是字符串值。如果您的目的是打印出 window 的标题,您可以使用 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);
}