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

时间:2019-02-19 15:35:42

标签: c winapi hwnd

好吧,我只有C个学期,所以我对HWND以及如何使用它一点都不困惑。我只想打印活动窗口。 我发现-GetActiveWindowGetForegroundWindow

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

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

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

但这可能是不好的用法,无法正常工作。
如果有人可以给我一个可行的例子,我将非常感激。

2 个答案:

答案 0 :(得分:3)

TCHAR buf[256];

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

答案 1 :(得分: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);
}