【问题标题】:Ignore Keyboard Input忽略键盘输入
【发布时间】:2011-04-24 15:13:34
【问题描述】:

我有一个显示键盘并测试按键是否被按下的应用程序。我遇到的问题是,当按下箭头按钮/选项卡等某些键时,键盘图形失去焦点并开始访问菜单项/等。我尝试在 MainWindow 中注册预览鼠标按下事件并设置 e.handled = true。但这并不总是有效。如果还有一种方法可以禁用 Windows 按钮,那就太好了。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    我认为您需要了解解决方案的操作系统代码。操作系统对某些键的处理与正常情况不同,因此您可能无法在某个键的值上达到峰值,甚至在它从您的应用程序中夺走控制权之前它已被按下。

    当我为 CP/M 编写机器代码 BIOS 例程时,我看到了这种事情。 Windows 比这更复杂。当我开始使用 Windows 3.1 时,我放弃了编写代码来控制硬件。

    【讨论】:

      【解决方案2】:

      我用过这个类:

      http://gist.github.com/471698

      我将第 99 行替换为以下代码:

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

      EnableKeyboard 由用户设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-17
        • 1970-01-01
        • 2012-07-25
        • 1970-01-01
        • 2021-07-29
        • 2017-06-03
        • 1970-01-01
        相关资源
        最近更新 更多