簡體   English   中英

如何確定全局鍵盤掛鈎是否已斷開連接?

[英]How to make sure if global keyboard hook have been disconnected?

我使用了Stephen Toubs版本的全局鍵盤鈎子,在WIN 7環境中使用它。

它工作正常,然后它就停止接收擊鍵。

我在regedit中增加了超時值,但在一段時間后它仍然斷開連接。

問題是,如何檢測它是否已斷開連接以及如何將鈎子設置為再次激活?

沒有辦法知道(來自msdn ):

鈎子過程應該在比以下注冊表項中的LowLevelHooksTimeout值中指定的數據條目更短的時間內處理消息:HKEY_CURRENT_USER \\ Control Panel \\ Desktop

如果掛鈎過程超時,系統會將消息傳遞給下一個掛鈎。 但是,在Windows 7及更高版本中,無需調用即可靜默刪除掛鈎。 應用程序無法知道鈎子是否被移除。

解決此問題的一種方法是保留收到的最后一條消息的時間戳,並使用后台計時器在從上一條消息過去一段時間后添加新的掛鈎。

此外,為了最大限度地減少這種情況,您的鈎子處理方法應該只收集最少的所需信息,並將數據的實際處理留給另一個線程。

這是一個功能! 是對原因描述

暫無
暫無

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

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