如何在 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);
}
好吧,我只有一个学期的 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);
}