2010-10-13 68 views
1

我有一個應用程序顯示一個鍵盤,並測試鍵是否被按下。我遇到的問題是,當某些按鍵像箭頭按鈕/選項卡一樣按下時,鍵盤圖形失去焦點並開始訪問菜單項/等。我嘗試在MainWindow中註冊預覽鼠標按下事件並設置e.handled = true。但這並不是一直工作。如果還有一種方法可以禁用Windows按鈕,那也不錯。忽略鍵盤輸入

回答

0

我用這個類:

http://gist.github.com/471698

我取代線99與此代碼:

return EnableKeyboard ? InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam) : (IntPtr) 1; 

凡EnableKeyboard由用戶設定。

1

我認爲你需要進入你的解決方案的操作系統代碼。操作系統會處理一些與正常不同的按鍵,因此您可能無法在按鍵的值處達到峯值,或者甚至在從應用程序接收控制權之前已按下它。

當我爲CP/M編寫機器代碼BIOS例程時,我看到了這種情況。 Windows比這更涉及。當我開始使用Windows 3.1時,我不再編寫代碼來控制硬件。