2010-10-13 71 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时,我不再编写代码来控制硬件。