簡體   English   中英

在X11中鈎住並阻止全局鼠標

[英]Hook and block globally mouse in X11

如果兩次單擊之間的延遲小於設置的時間,則需要全局掛接鼠標單擊並阻止最后一次單擊。

我使用WM_MOUSE_LL鈎子為Windows編寫了它。 我找不到適合我的解決方案。 甚至有可能在X11中全局阻止鼠標單擊?

Windows完整代碼

據我所知,標准的X11協議不允許這樣做。 XInput 2.0擴展可能會,但我對此表示懷疑。.盡管Windows假定每個程序都偵聽一個事件隊列,以便程序可以攔截一個事件並防止事件沿着隊列發送給其他偵聽器,但每個X11客戶端都有它自己的獨立隊列,並且所有注冊對事件感興趣的客戶端都會在其隊列中接收到它的獨立副本。 這意味着在正常情況下,錯誤的程序不可能阻止其他程序運行; 但是這也意味着,在某個客戶端必須阻止其他客戶端的情況下,它必須進行服務器搶奪,以防止該服務器處理任何其他客戶端的事件。

這意味着你可以

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

要么

  • 在輸入設備級別執行此操作。 /dev/input/event<n>給您輸入事件。 您可以在此處讀取按鍵並決定是否應進一步傳播這些按鍵。 不幸的是,沒有真正的文檔,但是頭文件linux/include/input.h完全可以解釋。

暫無
暫無

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

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