2016-12-09 34 views
0

如果兩次點擊之間的延遲小於設置的時間,我需要鉤住全局鼠標點擊並阻止最後一次點擊。在X11中掛鉤和阻擋全局鼠標

我使用WM_MOUSE_LL鉤子爲windows編寫了它。 我無法爲我找到任何解決方案。是否可以在X11中全局阻止鼠標點擊?

Windows full code

+0

你想做什麼?只是阻止「快速」雙擊? –

+0

@ I-V,是的,如果我們彼此正確理解 – Inline

+0

我的意思是,如果你試圖阻止你的代碼運行在同一臺機器上的點擊(或通過rdp在遠程機器上阻止)? –

回答

1

據我所知標準X11協議不允許這樣。 XInput 2.0的擴展可能,但我懷疑它..當Windows假設每個程序偵聽一個單一的事件隊列,以便程序可以攔截一個事件,並防止它被髮送到隊列其他偵聽器,每個X11客戶端它自己的獨立隊列和所有註冊對事件感興趣的客戶都會在其隊列中獲得獨立副本。這意味着在正常情況下,錯誤的程序不可能阻止其他程序運行;但這也意味着,當客戶端必須阻止其他客戶端時,它必須執行服務器抓取以防止服務器處理任何其他客戶端的事件。

這意味着你可以

  • 使用X服務器代理(不會很難,但會很慢)

  • 做的輸入設備級別。 /dev/input/event<n>給你輸入事件。你可以讀取那裏的按鍵,並決定是否應該進一步消耗。不幸的是,沒有真正的文檔,但頭文件linux/include/input.h是相當自我解釋。