问题标签 [keyboard-events]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - WPF:如何在 Key* 事件中检测 Key 重复?
注意:e.IsRepeat
已确认可以工作。存在问题是因为我使用从 Ubuntu 到 Windows 的远程桌面。
我找到了解决此远程桌面问题的方法:
- 在 Ubuntu 中禁用键重复。
- 在主机 Windows 中:使用“打开重复键和慢速键”启用 FilterKeys
- 使用 regedit 转到
HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Response
- 将
AutoRepeatDelay
,和AutoRepeatRate
,设置为足够小。Last Valid Delay
Last Valid Repeat
- 禁用 FilterKeys 并重新启用以刷新注册表更改。
- 将
如何检测KeyUp
/ KeyDown
(或PreviewKeyDown
/ PreviewKeyUp
)事件中的键重复?
我有以下测试用例:
如果我按下字母 D 并在一段时间后释放它,它会给我以下输出屏幕:
显然,e.IsRepeat
总是假的,所以那是没用的。我还注意到,有时第一个事件也是toggFalse、dowTrue,所以不能用作模式。
我还注意到,可以使用巧妙的计时方式来检测重复,但必须有一种本地方式来做到这一点。
.net - 输入键应保存并关闭,转义键应关闭而不保存
在 VB.NET 中,应保存 Windows 窗体详细信息。如果我按下该Enter键,它应该保存并关闭,而转义键应该关闭而不保存。
目前它发生在保存和取消按钮的 onclick 事件上,但我希望键盘事件也能工作。
任何可以做到这一点的快速代码都值得赞赏。
silverlight - 当应用程序处于全屏模式时,无法在 Silverlight 3 中对文本框控件使用键盘输入
当我将应用程序移动到全屏模式时出现 - 我无法在文本框控件中输入文本。似乎键盘事件被忽略了。我在这里找到了一篇文章 ( http://forums.silverlight.net/forums/t/142460.aspx ) 记录了同样的问题。
我还在 Silverlight 4 中读到过,如果应用程序受信任,那么将捕获键盘事件。与此同时,我是否可以使用 Silverlight-3 来做到这一点?从我所见没有!
或者说将来是否允许不受信任的应用程序在全屏模式下触发键盘事件?
wpf - 等效于 WPF 中的 keypreview 属性
我正在考虑为我的一些应用程序从 WinForms 跳入 WPF,目前我正在开发组合的条形码阅读器/文本输入程序(医疗保健患者表格)。
为了能够处理条形码字符,我依赖于 WinForms 中的 Keypreview 属性(因为无论哪个控件具有焦点,都可以扫描条形码)。
但是对于 WPF 应用程序,我似乎在 VS2008 或 VS2010 中都找不到 KeyPreview 属性。
是否有替代方法/解决方案来处理我在 WPF 中的条形码字符?
研究人员亨利
windows - SendInput() 和非英文字符和键盘布局
在 Windows 中使用非英语输入键盘语言时,我无法模拟字符按键。
我尝试使用 KEYEVENTF_UNICODE 调用 SendInput():
这实际上是有效的(当然,在我的代码中,我也在按下键后执行了 KEYUP)......除了在 GTK+ 应用程序中(可能还有其他情况下它也不起作用)。
根据MSDN,如果指定了 KEYEVENTF_UNICODE,SendInput 将 WM_KEYDOWN 或 WM_KEYUP 消息发送到前台线程的消息队列,其中 wParam 等于 VK_PACKET。GetMessage 或 PeekMessage 获得此消息后,将消息传递给 TranslateMessage 会发布一条 WM_CHAR 消息,该消息具有最初由 wScan 指定的 Unicode 字符。如果将此 Unicode 字符发布到 ANSI 窗口,它将自动转换为适当的 ANSI 值。
所以我相信当 KEYEVENTF_UNICODE 被传递时,SendInput() 的功能就不同了……不像平时那么低级。
对于我的一生,我想不出任何其他方法来让 SendInput() 为用户的键盘语言正确打印字符。例如,如果键盘输入语言是“瑞典语”,我不能让它输出'@'(而是打印出一个引号),我不能让它正确输出非 ASCII 字符,要么(重音字母等)。
提前致谢。
jquery - jQuery 同时容纳 HOVER 和 FOCUS(鼠标和键盘)
我正在构建一个大型菜单,我希望能够通过悬停(使用鼠标)和焦点(例如通过键盘切换到它)来触发菜单。
这就是我目前正在做的事情:
这可行,但我想知道这是否是同时处理键盘和鼠标交互的理想方式。
java - 重新定义 JRadioButton 中 Tab 键的行为?
我正在尝试重新定义 JRadioButton 中 Tab 键的行为,以便它的行为类似于其他 GUI 应用程序中的单选按钮,即:
- 箭头键循环通过 ButtonGroup 中的单选按钮(我有这个工作)
- Tab 将焦点移至组中最后一个单选按钮之后的下一个组件(问题区域)
我有一个 Action 可以执行必要的步骤来找到正确的焦点组件和所有内容,但是向 InputMap 添加一个条目似乎不起作用:
我在 Tab 的输入映射中的条目似乎被忽略了,因为该操作永远不会被执行。我想这可能是因为 KeyboardFocusManager 或相关的东西在它到达组件的输入映射之前消耗了 Tab 事件。
关于如何停止此行为并改为使用自定义 Tab 行为的任何想法?
perl - 陷印箭头键
我有一个用作伪“shell”的实用程序。它基本上是 while() 的命令标准输入,并通过不同的子例程运行它们。
我的问题是,是否有一个模块或一些示例可以用来捕获向上箭头,以便我可以让它执行某个操作?我计划合并以前类似于 bash 的命令功能。
现在,如果我按向上箭头,我会得到:
提前致谢。
c++ - C++ 控制台键盘事件
有没有办法在 Windows 控制台中获取关键事件?我需要一种无需 GUI 即可快速获取 keydown 和 keyup 事件的方法。我试过使用 getch(),但它没有得到 keyups 并等到一个键被按下返回。
wpf - 在 WPF 中检测用户按 F10
F1我的 WPF 应用程序具有由功能键 ( - )触发的行为F12。
我的代码是这样的:
这适用于除 之外的所有 F 键F10。调试,我发现e.Key == Key.System
当用户按下F10.
在枚举定义中,F10 = 99
and System = 156
,所以我可以排除它是一个重复的枚举值(如PageDown = Next = 20
)。
那么,我如何判断用户何时按下F10?
代替检查是否安全Key.System
?这感觉有点脏 - 可能会Key.System
因为按下其他键而导致?或者是否有一些设置可以F10报告为Key.F10
?