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

问题描述 投票:0回答:2

好吧,我只有一个学期的C,所以我很少与HWND混淆,以及如何使用它。我只想打印活动窗口。我找到了 - GetActiveWindowGetForegroundWindow

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

我试图做类似的事情。

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

但这可能是糟糕的用途而且不起作用。 如果有人能给我一个工作的例子,我将非常感激。

c winapi hwnd
2个回答
3
投票
TCHAR buf[256];

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

3
投票

HWNDhandle。它有一个整数值,而不是字符串值。如果您的目的是打印窗口的标题,您可以使用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);
}
© www.soinside.com 2019 - 2024. All rights reserved.