Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 忽略键盘输入_C#_Wpf - Fatal编程技术网

C# 忽略键盘输入

C# 忽略键盘输入,c#,wpf,C#,Wpf,我有一个显示键盘的应用程序,可以测试按键是否被按下。我遇到的问题是,当按下某些键(如箭头按钮/选项卡)时,键盘图形会失去焦点,并开始访问菜单项等。我尝试在主窗口中注册预览鼠标按下事件并设置e.handled=true。但这并不总是奏效。如果有办法禁用windows按钮也会很好。我认为您需要了解解决方案的操作系统代码。操作系统处理的一些键与普通键不同,因此您可能无法在某个键的值达到峰值,甚至无法在该键从应用程序中失去控制之前按下该键 当我为CP/M编写机器代码BIOS例程时,我就看到了这种情况。W

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

我认为您需要了解解决方案的操作系统代码。操作系统处理的一些键与普通键不同,因此您可能无法在某个键的值达到峰值,甚至无法在该键从应用程序中失去控制之前按下该键


当我为CP/M编写机器代码BIOS例程时,我就看到了这种情况。Windows要比这复杂得多。当我开始使用Windows 3.1时,我停止编写控制硬件的代码。

我认为您需要了解解决方案的操作系统代码。操作系统处理的一些键与普通键不同,因此您可能无法在某个键的值达到峰值,甚至无法在该键从应用程序中失去控制之前按下该键

当我为CP/M编写机器代码BIOS例程时,我就看到了这种情况。Windows要比这复杂得多。当我开始使用Windows 3.1时,我停止编写控制硬件的代码。

我使用了这个类:

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

return EnableKeyboard ? InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam) : (IntPtr) 1;
其中EnableKeyboard由用户设置。

我使用了这个类:

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

return EnableKeyboard ? InterceptKeys.CallNextHookEx(hookId, nCode, wParam, lParam) : (IntPtr) 1;
其中EnableKeyboard由用户设置