[英]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.