问题标签 [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.

0 投票
3 回答
9390 浏览

c# - 如何在 KeyDown 事件中检测 NumberDecimalSeparator (C#)

我正在尝试查看用户是否在文本框中按下了小数点分隔符,并根据其他参数允许或禁止它。

NumberdecimalSeparator 返回 46 或 '.' 在我的美国系统上。许多其他国家/地区使用“,”作为分隔符。当我按下句点时,KeyDown 事件将 KeyValue 设置为 190。

我只是继续寻找逗号/句号,还是有更好的方法?

0 投票
1 回答
1445 浏览

mouse - 是否可以映射按键以模拟 xwindows 中的中键?

我想知道,是否有可能以某种方式将按键事件映射为 Xwindows 中鼠标的中键单击?我知道它们是不同的设备,但是如果有办法从 C 程序中触发中键单击事​​件,那么使用现有的 xwindows 机制将键绑定到它应该很容易。

0 投票
6 回答
21126 浏览

.net - 如何从 DataGridView 数据单元格中获取 keypressed、keydown 事件

我需要在控制单元格编辑期间接收按键事件DataGridView

从我在网上找到的内容来看,DataGridView它旨在将所有关键事件传递DataGridView给单元格编辑控件,您无法轻松获取这些事件。

我发现这段代码可以捕获这些事件以进行DataGrid控制,但这不适用于DataGridView.

0 投票
2 回答
868 浏览

javascript - 是否有任何用于检查键盘/鼠标活动的预构建 Javascript?

我需要一个 Javascript 来监视键盘和鼠标事件以跟踪用户在页面上花费的时间。具体来说,通过键入或用鼠标移动/单击来主动使用页面。

我想我会问是否有人知道一些可能对我有用的东西以节省一些时间。否则,Javascript 和阿司匹林我来了……哈哈

0 投票
3 回答
1202 浏览

c++ - 读取键盘字符以确定快捷键

我正在开发一个文档应用程序和该应用程序的一部分,如果该键盘条目与预定义的短格式/单词匹配,我必须添加支持以读取键盘按下事件并替换预定义的字符集。实际应用程序已用 C++ 实现。

请向我提供您对如何实现这一点的想法。是否有任何示例 C++ 程序可供参考?算法/概念?

0 投票
13 回答
175165 浏览

javascript - 使用 JavaScript 和 jQuery,跨浏览器处理按键事件 (F1-F12)

我想使用 JavaScript 和 jQuery 处理 F1-F12 键。

我不确定要避免哪些陷阱,而且我目前无法在 Internet Explorer 8、Google Chrome 和 Mozilla FireFox 3 之外的任何其他浏览器中测试实现。

对完整的跨浏览器解决方案有什么建议吗?类似于经过良好测试的 jQuery 库,或者只是普通的 jQuery/JavaScript?

0 投票
4 回答
8038 浏览

actionscript-3 - AS3:检测长按键

我有一个需要对“长按键”做出反应的界面。这意味着根据键按下的时间长短,对同一键执行 2 种不同的操作:

按左光标:动作 A

按住左光标:动作 B

好吧,事实证明我想的更难。主要问题是,如果您按住键,Keyboard.KEY-DOWN 和 Keyboard.KEY-UP 都会连续触发。这对我来说看起来很奇怪,尽管如果您考虑输入文本可能会有意义(如果您正在输入文本并按住一个键,它会开始填充空间)。

当我试图解决这个问题时,我想在 KEY-DOWN 上启动一个计数器并在 KEY-UP 上重置它。然后,如果它达到某个阈值,则触发一个事件。问题是计数器立即重置,因为它们 KEY-UP 事件一直在触发。

我知道诸如BigRoomSenocular之类的键盘轮询类,但它们并没有解决问题,因为它们的状态基于相同的事件。

我可以让定时器在 KEY-DOWN 上启动一个定时器,并在 x 毫秒后检查键是否仍然处于关闭状态,但这会假设该键一直处于关闭状态。我不认为这会是可靠的。

这就是我开始没有想法的地方。我忽略了一个更简单的方法吗?我希望有!

谢谢,

胡安

0 投票
4 回答
4263 浏览

python - PyGame 在同时按下 3 个以上的键时没有接收到事件

我正在PyGame中开发一个简单的游戏......一艘火箭飞船飞来飞去并射击东西。


问题:为什么 pygame 在一次按下太多键时会停止发出键盘事件?

关于密钥处理:该程序有许多变量KEYSTATE_FIRE, KEYSTATE_TURNLEFT,例如 等...

  1. 处理事件时KEYDOWN,它将相应的KEYSTATE_*变量设置为 True。
  2. 处理事件时KEYUP,它将相同的变量设置为 False。

问题: 如果UP-ARROWLEFT-ARROW被同时按下,pygame 在按下时不会发出KEYDOWN事件SPACE。此行为因键而异。按下字母时,我似乎可以在 pygame 停止KEYDOWN为其他键发出事件之前按住其中的 5 个。

验证:在我的主循环中,我只是打印了收到的每个事件来验证上述行为。

代码:作为参考,这里是此时处理关键事件的(粗略)方式:

按此顺序:

  • a (down)
  • s (down)
  • d (down)
  • f (down)
  • g (down)
  • h (down)
  • j (down)
  • k (down)
  • a (up)
  • s (up)
  • d (up)
  • f (up)
  • g (up)
  • h (up)
  • j (up)
  • k (up)

这是输出:

  • <Event(2-KeyDown {'scancode': 30, 'key': 97, 'unicode': u'a', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 31, 'key': 115, 'unicode': u's', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 32, 'key': 100, 'unicode': u'd', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 33, 'key': 102, 'unicode': u'f', 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 30, 'key': 97, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 31, 'key': 115, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 32, 'key': 100, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 33, 'key': 102, 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 36, 'key': 106, 'unicode': u'j', 'mod': 0})>
  • <Event(2-KeyDown {'scancode': 37, 'key': 107, 'unicode': u'k', 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 36, 'key': 106, 'mod': 0})>
  • <Event(3-KeyUp {'scancode': 37, 'key': 107, 'mod': 0})>

这是一个常见问题吗?有解决方法吗?如果不是,那么在使用 pygame 时处理多键控制问题的最佳方法是什么?

0 投票
2 回答
2282 浏览

c++ - 将字符串(字符)发送到活动窗口

我编写了一个简单的程序,它从串行端口(/dev/ttyS1)读取外部设备(条形码扫描仪)的字符并将其提供给当前活动的窗口(使用 XSendEvent)。

程序在速度较快的计算机上运行良好,但在速度较慢的计算机上,情况会发生(经常),字符的接收顺序与发送的顺序不同。例如,scanner 发送 1234567 到串口,我的程序发送 char 事件 1234567,但是活动程序(例如 xterm)收到 3127456。我尝试在各个地方调用 XSync 并添加usleep调用,但没有帮助。

有谁知道如何强制角色的“顺序”?

还是有其他方法可以将字符串发送到活动窗口(如果需要,我什至不介意使用外部程序)?

这是代码,也许我只是做错了什么:

0 投票
2 回答
5846 浏览

c - 如何使用 SendInput() 指定 kbd 修饰符?

我正在使用 Windows API SendInput() 调用来模拟键盘事件。以下片段(省略了无关细节)非常适合发送一系列字符:

现在我正在尝试发送带有修饰符的单个按键。我尝试了以下代码:

但是,修饰符似乎没有通过,即,即使说control设置为 true,事件序列也会作为普通按键接收。