簡體   English   中英

如何正確獲取窗口標題

[英]How to get window title correctly

我可以執行以下操作來獲取另一個應用程序的窗口標題嗎?

char window_text[256];
LRESULT lResult = SendMessageA(pMouseHook->hwnd, WM_GETTEXT, sizeof(window_text) / sizeof(*window_text), (LPARAM)window_text);
printf("Copied %d characters. Contents: %s\n", lResult, window_text);

還是應該首先分配全局內存並使用它而不是本地char數組?

提前致謝。

使用本地字符數組非常好。 當然,如果標題比您提供的緩沖區長,則返回值將被截斷。

對於窗口是一個不同的過程,您可以考慮使用GetWindowText 文件說:

如果目標窗口由當前進程擁有,則GetWindowText會導致WM_GETTEXT消息發送到指定的窗口或控件。 如果目標窗口由另一個進程擁有並具有標題,則GetWindowText檢索窗口標題文本。 如果窗口沒有標題,則返回值為空字符串。 此行為是設計使然。 如果擁有目標窗口的進程沒有響應,它允許應用程序調用GetWindowText而不會無響應。 但是,如果目標窗口沒有響應,並且它屬於調用應用程序,則GetWindowText將導致調用應用程序變得無響應。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM