Tag: 键盘

WPF FocusNavigationDirection,MoveFocus和Arrow键

我有一个简单的应用程序(一个带有6个按钮的网格 – 两行3 – 用于测试),我正在处理左右箭头键,如下所示 private void Window_PreviewKeyDown(object sender, KeyEventArgs e) { FocusNavigationDirection focusDirection = new System.Windows.Input.FocusNavigationDirection(); switch (e.Key) { case Key.Left: focusDirection = System.Windows.Input.FocusNavigationDirection.Left; break; case Key.Right: focusDirection = System.Windows.Input.FocusNavigationDirection.Right; break; default: break; } TraversalRequest request = new TraversalRequest(focusDirection); // Gets the element with keyboard focus. UIElement elementWithFocus = Keyboard.FocusedElement as UIElement; // Change […]

在c#(wpf)中捕获windows密钥

我按下任何按钮时,我写了一个小节目,在屏幕上显示声音和图像。 当我的一个小孩爬到我的膝盖上并开始按键时,我总是开始它,当然是随机的。 它工作正常,除了2个键,其中一个是ON / OFF开关,另一个是Windows键。 (CTRL-ESC相当于我相信)我可以在按下它时拦截它,但只有在startmenu显示之后才会拦截它。 我使用的事件是UIElement.KeyDown,到目前为止我能想到的是:( e是KeyEventArgs) if (e.Key == Key.LWin) e.Handled = true; 但是比开始窗口已经显示我害怕。 我已经有1个答案,但非常想知道是否有任何wpf支持? 我怀疑编程主开/关开关可能不可能? 否则,任何帮助也会受到欢迎..

如何拦截所有键盘事件并防止在WinForms应用程序中失去焦点?

我的一个朋友是盲人,我有一个想法,开发一个程序,让他在盲人打字方法和听力反馈的帮助下使用PC。 如果我的应用程序可以在启动时强行完全控制整个键盘输入,那么体验会更加丰富(使用更多按键来执行特定function)和完美无缺(如防止偶尔的焦点丢失)(我会把它放到它身上)在他的初创公司)。 我是一个WinForms C#.Net开发人员,所以我想在使用这个特定框架和语言的应用程序中实现它(不过不介意包装WinAPI调用)。 PS:我不介意系统保持对Ctrl + Ald + Del组合的控制,但我想控制所有其他键和组合,包括Windows徽标和标准应用程序启动器按钮。

如何禁用框架c#WPF中的导航快捷方式

如何禁用框架中的导航快捷方式(例如,“Backspace”用于向后导航,“Alt +向右箭头”用于向前导航)。 我想使用其他键盘function,所以我想禁用框架的导航快捷方式。 谁能帮我?

C#在游戏应用程序中按住键

我正在尝试创建一个C#应用程序,它将控制游戏。 我试图做的是例如:按住A键150ms,按住左箭头500ms,依此类推。 我正在搜索很多,我发现了以下代码。 我的程序首先瞄准游戏,然后拿着钥匙。 I’m holding the keys this way: Keyboard.HoldKey(Keys.Left); Thread.sleep(500); Keyboard.ReleaseKey(Keys.Left); 这是Keyboard类: public class Keyboard { public Keyboard() { } [StructLayout(LayoutKind.Explicit, Size = 28)] public struct Input { [FieldOffset(0)] public uint type; [FieldOffset(4)] public KeyboardInput ki; } public struct KeyboardInput { public ushort wVk; public ushort wScan; public uint dwFlags; public long time; […]

SetWindowsHookEx全局键盘钩子没有捕获所有按键

我正在编写属于自动化系统的代码。 我想添加一个键盘钩子来提前结束测试,我通过使用SetWindowHookEx来做到这一点。 我的代码看起来非常像这样: http : //support.microsoft.com/kb/318804 这是我的SetWindowsHookEx调用: hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardHookProcedure, GetModuleHandle(Process.GetCurrentProcess().MainModule.ModuleName), 0); 现在,当我运行自动化时,自动化系统内的按键(来自SendKeys)会触发键盘挂钩方法,但是当我手动敲击键盘时,它不会被触发。 如果有帮助,我可以共享更多代码,但它是更大系统的一部分。 我很确定: 我的SetWindowsHookEx不正确,或 自动化系统中的某些东西绕过了我的键盘钩子(虽然我真的不知道怎么说)。 我编写了一个测试应用程序,它使用microsoft.com的示例代码来确定我的方法是否有价值(即它有效),但我无法将其与自动化系统集成。 任何关于如何确定出错的地方的想法都将不胜感激。 编辑:自动化工具中没有其他SetWindowsHookEx实例。 我不太清楚全局键盘钩子与线程和桌面的细微差别。 如果我添加一个全局键盘钩子,它的添加位置是否重要?

按钮的键盘快捷键

在C#(Microsoft Visual Studio 2010 )中,如何为按钮分配键盘快捷键,如下所示? private void closeButton_Click(object sender, EventArgs e) { // Close the program this.Close(); } 我知道我可以在按钮的文本中使用“&”字符并创建一个Alt – n快捷方式,但我想创建一个按键快捷键,例如c来执行上面的操作。

通过ProcessCmdKey捕获密钥序列

我在我的应用程序中覆盖了ProcessCmdKey,并且可以使用修饰符获得任何单个按键(例如,Alt + Ctrl + X)。 我想要做的是模仿说ReSharper的快捷处理,其中用户按住控制键,然后R,M打开重构对话框 我已经找到了大量的参考来捕获关键加上修饰符组合,但序列不多。 C#中存在Capture多个键,但它使用了KeyDown事件。 还有一些关键的挖掘示例,例如http://www.codeproject.com/KB/system/simple_key_log.aspx ,它捕获所有内容并使用本机调用。 我可以扩展我的ProcessCmdKey来处理键序列还是我需要查看其他地方? 由于我在ProcessCmdKey中捕获了大量快捷方式,因此如果可能的话,我宁愿不必再次启动 谢谢

C#在任何地方检测ESC按键

我有一个C#窗口应用程序正在运行,我想在任何地方按ESC时关闭它,即使我的应用程序没有焦点。 我该如何实现呢? 我找到了一些低级控制键盘,我不知道也不明白。

如何不允许在一键按下时收到多个键盘?

当我们按下一个按键并继续按下它时,按键和按键事件会持续发生。 有没有办法让它们只在一个完整的循环后才开火,例如keydown然后键入。 我希望用户不能连续按键,而是希望用户必须按下然后释放键盘才能输入字符! 因此,以下情况不会发生,例如:当用户按下“p”1秒钟时pppppppppppppppppppppppppp。