我正在開發一個在線測驗客戶端,我們使用專門定製的Linux發行版,其中只包含測驗客戶端軟件以及文本編輯器和其他實用程序軟件。當用戶開始測驗時,我想阻止他/她最小化窗口/關閉窗口/切換到桌面或其他窗口。測驗只能使用鼠標進行,因此我需要在測驗期間完成禁用鍵盤。我怎麼能這樣做,使用Qt或Mono?如果需要,我準備使用任何低級庫/驅動程序。阻止Linux應用程序中的所有鍵盤輸入(使用Qt或Mono)
回答
你看過XGrabKeyboard?這應該做一個全球性的鍵盤。
您是否嘗試過使用EventFilter?你有機會阻止所有涉及到,作爲實例,按鍵事件...
點擊此處瞭解詳情:http://qt.nokia.com/doc/4.6/eventsandfilters.html
希望它能幫助!
喜歡的東西:
bool MyWidget::event(QEvent *event)
{
if (event->type() == QEvent::KeyPress)
{
return true;
}
return QWidget::event(event);
}
我可以使用它來阻止「全局」按鍵,如alt + tab,control + alt + del?我不這麼認爲。 – BlueSilver 2010-03-10 12:51:03
編輯:我試過了,你說得對,它沒有用多鍵按鍵工作......我不明白爲什麼......應該有一些事情可以「走動」這個問題......你也可以看看KeyLogger的例子... – 2010-03-10 13:49:19
您可以使用的QWidget :: grabKeyboard和QWidget的:: grabMouse,並請注意在評論中警告:
警告:錯誤的鼠標抓取 應用經常鎖定 終端。使用 這個功能極其謹慎,並且考慮使用 的-nograb命令行選項,而 調試。
當一個應用程序有一個手柄掛起或長時間無響應時,非常煩人,所以請小心使用。如果你遇到過這種情況,唯一的解決方法是按下sysrq + alt + r(切換到基本的內核鍵盤處理程序),然後alt + f1(切換到文本控制檯),然後關閉應用程序。你需要通過'echo 1>/proc/sys/kernel/sysrq'打開「magic sysrq」鍵。 – liori 2010-03-10 14:11:19
因此,我可以使用QWidget :: grabKeyboard來完全阻止所有的鍵盤輸入,甚至像Alt + Tab,Control + Alt + F1,Control + Alt + Del等特殊鍵盤輸入。另外,它會在GNOME中工作嗎?可以直接從Mono調用這個函數嗎? – BlueSilver 2010-03-11 03:52:37
我沒有試過這個GNONE和Mono。你可以試試嗎?請確保在測試小部件上添加「退出」按鈕。 – 2010-03-11 04:49:01
- 1. 鍵盤掛鉤,防止鍵盤輸入到應用程序
- 2. ReSharper阻止VS2013中的鍵盤輸入
- 3. 在python中阻止鍵盤輸入
- 4. CGEventTap阻止應用程序輸入
- 5. 如何阻止我的WinForms應用程序的所有鍵盤和鼠標輸入?
- 6. Qt鍵盤輸入
- 7. 如何阻止鍵盤輸入在VB.net
- 8. 使用USB鍵盤在SmartTV應用程序中輸入文字
- 9. 如何使用軟鍵盤輸入我的應用程序?
- 10. 在CentOS或Linux上使用Mono執行.Net應用程序
- 11. Android鍵盤阻止應用程序組件
- 12. JTextfield應觸發所有鍵盤輸入
- 13. WPF阻止鍵盤調用
- 14. 如何重定向stdin或阻止鍵盤輸入?
- 15. 我如何在鍵盤上使用我的應用程序的輸入鍵
- 16. 在應用程序中讀取硬件鍵盤的輸入
- 17. 使用Nodejs在OSX應用程序中作爲鍵盤輸入流輸出
- 18. Linux,execl(),爲什麼我失去應用程序的鍵盤輸入?
- 19. Linux - 丟棄鍵盤輸入
- 20. 當窗口彈出時,鍵盤輸入在Qt 4.4程序中停止工作
- 21. 如何獲得AIR應用程序的過程鍵盤輸入
- 22. 使WildFly在部署應用程序時阻止所有連接
- 23. 按鍵事件阻止所有鍵盤按鍵
- 24. 如何阻止C#中的鍵盤和鼠標輸入?
- 25. 無法通過鍵盤在Android應用程序中輸入?
- 26. 在控制檯應用程序中解析Java鍵盤輸入
- 27. 在VB.net中從鍵盤輸入獲取應用程序名稱
- 28. tvOS中的自定義UIWindow使應用程序對鍵盤輸入無反應
- 29. 使用C#阻止應用程序
- 30. 如何阻止NSPanel竊取其他應用程序的輸入
謝謝。有效! – BlueSilver 2010-03-15 04:12:15
我無法使用它阻止Control + Alt + F1。有什麼辦法可以做到嗎? – BlueSilver 2010-03-19 09:03:06
它必須在更高層次上處理。我沒有任何經驗,但我會從這裏開始: http://www.charvolant.org/~doug/xkb/html/index.html – Chris 2010-03-20 19:43:52