问题标签 [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# - 如何在 KeyDown 事件中检测 NumberDecimalSeparator (C#)
我正在尝试查看用户是否在文本框中按下了小数点分隔符,并根据其他参数允许或禁止它。
NumberdecimalSeparator 返回 46 或 '.' 在我的美国系统上。许多其他国家/地区使用“,”作为分隔符。当我按下句点时,KeyDown 事件将 KeyValue 设置为 190。
我只是继续寻找逗号/句号,还是有更好的方法?
mouse - 是否可以映射按键以模拟 xwindows 中的中键?
我想知道,是否有可能以某种方式将按键事件映射为 Xwindows 中鼠标的中键单击?我知道它们是不同的设备,但是如果有办法从 C 程序中触发中键单击事件,那么使用现有的 xwindows 机制将键绑定到它应该很容易。
.net - 如何从 DataGridView 数据单元格中获取 keypressed、keydown 事件
我需要在控制单元格编辑期间接收按键事件DataGridView
。
从我在网上找到的内容来看,DataGridView
它旨在将所有关键事件传递DataGridView
给单元格编辑控件,您无法轻松获取这些事件。
我发现这段代码可以捕获这些事件以进行DataGrid
控制,但这不适用于DataGridView
.
javascript - 是否有任何用于检查键盘/鼠标活动的预构建 Javascript?
我需要一个 Javascript 来监视键盘和鼠标事件以跟踪用户在页面上花费的时间。具体来说,通过键入或用鼠标移动/单击来主动使用页面。
我想我会问是否有人知道一些可能对我有用的东西以节省一些时间。否则,Javascript 和阿司匹林我来了……哈哈
c++ - 读取键盘字符以确定快捷键
我正在开发一个文档应用程序和该应用程序的一部分,如果该键盘条目与预定义的短格式/单词匹配,我必须添加支持以读取键盘按下事件并替换预定义的字符集。实际应用程序已用 C++ 实现。
请向我提供您对如何实现这一点的想法。是否有任何示例 C++ 程序可供参考?算法/概念?
javascript - 使用 JavaScript 和 jQuery,跨浏览器处理按键事件 (F1-F12)
我想使用 JavaScript 和 jQuery 处理 F1-F12 键。
我不确定要避免哪些陷阱,而且我目前无法在 Internet Explorer 8、Google Chrome 和 Mozilla FireFox 3 之外的任何其他浏览器中测试实现。
对完整的跨浏览器解决方案有什么建议吗?类似于经过良好测试的 jQuery 库,或者只是普通的 jQuery/JavaScript?
actionscript-3 - AS3:检测长按键
我有一个需要对“长按键”做出反应的界面。这意味着根据键按下的时间长短,对同一键执行 2 种不同的操作:
按左光标:动作 A
按住左光标:动作 B
好吧,事实证明我想的更难。主要问题是,如果您按住键,Keyboard.KEY-DOWN 和 Keyboard.KEY-UP 都会连续触发。这对我来说看起来很奇怪,尽管如果您考虑输入文本可能会有意义(如果您正在输入文本并按住一个键,它会开始填充空间)。
当我试图解决这个问题时,我想在 KEY-DOWN 上启动一个计数器并在 KEY-UP 上重置它。然后,如果它达到某个阈值,则触发一个事件。问题是计数器立即重置,因为它们 KEY-UP 事件一直在触发。
我知道诸如BigRoom和Senocular之类的键盘轮询类,但它们并没有解决问题,因为它们的状态基于相同的事件。
我可以让定时器在 KEY-DOWN 上启动一个定时器,并在 x 毫秒后检查键是否仍然处于关闭状态,但这会假设该键一直处于关闭状态。我不认为这会是可靠的。
这就是我开始没有想法的地方。我忽略了一个更简单的方法吗?我希望有!
谢谢,
胡安
python - PyGame 在同时按下 3 个以上的键时没有接收到事件
我正在PyGame中开发一个简单的游戏......一艘火箭飞船飞来飞去并射击东西。
问题:为什么 pygame 在一次按下太多键时会停止发出键盘事件?
关于密钥处理:该程序有许多变量KEYSTATE_FIRE, KEYSTATE_TURNLEFT
,例如 等...
- 处理事件时
KEYDOWN
,它将相应的KEYSTATE_*
变量设置为 True。 - 处理事件时
KEYUP
,它将相同的变量设置为 False。
问题:
如果UP-ARROW
和LEFT-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 时处理多键控制问题的最佳方法是什么?
c++ - 将字符串(字符)发送到活动窗口
我编写了一个简单的程序,它从串行端口(/dev/ttyS1)读取外部设备(条形码扫描仪)的字符并将其提供给当前活动的窗口(使用 XSendEvent)。
程序在速度较快的计算机上运行良好,但在速度较慢的计算机上,情况会发生(经常),字符的接收顺序与发送的顺序不同。例如,scanner 发送 1234567 到串口,我的程序发送 char 事件 1234567,但是活动程序(例如 xterm)收到 3127456。我尝试在各个地方调用 XSync 并添加usleep调用,但没有帮助。
有谁知道如何强制角色的“顺序”?
还是有其他方法可以将字符串发送到活动窗口(如果需要,我什至不介意使用外部程序)?
这是代码,也许我只是做错了什么:
c - 如何使用 SendInput() 指定 kbd 修饰符?
我正在使用 Windows API SendInput() 调用来模拟键盘事件。以下片段(省略了无关细节)非常适合发送一系列字符:
现在我正在尝试发送带有修饰符的单个按键。我尝试了以下代码:
但是,修饰符似乎没有通过,即,即使说control
设置为 true,事件序列也会作为普通按键接收。