问题标签 [keyboard-input]
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++ - ncurses getch() 每隔一个字符跳过一次
我正在编写一个俄罗斯方块游戏,其中 ncurses 使用 getch() 获取键盘输入。对于完成的游戏,nodelay() 将处于活动状态,但出于测试目的,我已将其注释掉。出于某种原因,我的游戏循环调用的输入函数忽略了每个第二个字符。例如,输入“q”会关闭我的程序。如果我输入 aqaqaqaqaq 的序列......程序将永远不会关闭,因为 q 没有注册。下面是 init 是我的 ncurses 代码的函数,下面是我的输入函数。
编辑:如果重要的话,我正在测试在 Windows 上的 virtualbox 中运行的 Ubuntu 中的代码。
c++ - windows识别键后检测键盘输入
我正在构建一个程序,可以在屏幕上打印出按下按钮的值。当程序的窗口不活动时,我也需要它工作。我尝试使用 GetAsyncKeyState(int),效果很好。但是,我可以将某些字符串附加到键上,但它不适用于所有类型的键盘(例如,在英文键盘上 shift+2 是 @,而在我的键盘上则不是)。如何检测 Windows 完成的键输入的后处理(在记事本中书写时打印在屏幕上的字符)?
c# - 如何获得通过按住 shift 获得的字符?
我将尝试更好地解释我的意思,并且我还将尝试使问题不受语言影响,尽管如果有一种方法可以在 C# 中执行我想要的操作而无需引用任何内容,那就太好了。反正。
我正在处理键盘输入,并将其转换为字符串。一切都好。我得到了 Shift 和 CapsLock 键的状态并 EXOR 它,所以我可以找出结果字符串的大小写。
而且暂时没有问题。如果用户在按住 shift 或切换大写锁定时键入“a”,则它变为“A”。
但是,如果用户决定键入“!”,即“1”加上 shift,我只会得到 1,因为“1”大写仍然是“1”。
在问这个问题之前,我在网上看了一些,但我得到的只是“自己映射键”。这真的是唯一的答案吗?此外,如果我映射了按键,然后具有不同键盘布局的用户尝试使用我的应用程序,会发生什么情况?提前致谢。
c++ - 从 DLL 创建的 C++ 无模式对话框无法正确处理输入
我在从 DLL 文件创建无模式对话框时遇到问题。我的对话框没有什么特别之处,只有一个确定按钮和一个编辑框。我查看了这篇 Microsoft 知识库文章 ( http://support.microsoft.com/kb/233263 ) 并实施了它的解决方案来创建一个窗口挂钩来抓取和处理消息。
Microsoft 提供的方法解决了 Tab 键问题,但是,它产生了另一个问题。当我在对话框的编辑框中键入时,我按的任何内容都会重复 4 次。例如,如果我在键盘上按“a”,“aaaa”将出现在编辑框中。
如果我禁用 Window Hook,那么编辑框可以正常工作并且只显示一个“a”。
我需要对 Window Hook 程序做些什么来解决这个问题?
任何帮助是极大的赞赏。
- - 编辑 - -
根据要求,我的窗口挂钩程序代码:(与知识库文章相同)
我的对话框回调过程:
两者hHook
和hwndDllDlg
分别定义为HHOOK
和HWND
。
c# - 如何在 C# 的 if() 语句中调用多个函数
所以我需要 ac#if()
语句,它应该看起来像这样,也许?代码:
这就是我使用上述变量的代码:
有什么建议么?
c - Fill in an array from a single formatted keyboard line in C
How can I fill in a double or int array from a single, arbitrarily long, formatted (e.g. space delimited) keyboard line?
For instance:
should result in
I know that I can use scanf as follows, but that does not solve my problem, since each element should be entered one by one.
Thanks.
java - java awt键盘输入的首选方式是什么
我在互联网上看到了许多相互矛盾的建议,包括这里关于如何使用 awt 和 swing 处理输入的建议,并且有几个人在我的代码上工作过,而且一团糟。
选项
- 实现 KeyListener 或扩展 KeyAdapter
- ^到应用程序的主类,使用匿名类,使用私有类或使用外部输入管理类。
- 将事件对象发送到需要知道输入的每个对象,发送按下的键数组,或者使每个类成为侦听器并将其添加到主类。
所以我可以
或者
或者
或者
或者
并且implements KeyListener
可以替换为,extends KeyAdapter
但我不会这样做,因为 java 只允许一个父类。
然后有一个我不知道它是如何进入我的代码的
或者
真的,awt 键盘输入的最佳实现是什么?
javascript - 只要按下特定键,就在循环中运行函数
只要按下箭头键,我就想重复运行特定的代码。我试图在一周内尽可能多地了解有关 JavaScript 的内容并编写了这段代码(见下文),但它不起作用。现在我正在尝试在页面上打印一些东西,但在最终实现中我需要重复运行一个文件。另外我想知道一种方法来打印新执行的函数的结果,而不会擦除屏幕上已经存在的任何内容。
PS:请原谅我糟糕的脚本技巧。我试图快速掌握所有内容,以便将其整合到我正在从事的项目中。
python - Pygame 键盘输入事件延迟
用pygame编写了一个小程序后,我遇到了一个问题。该程序采用拆分的 .GIF 动画并通过以下方式加载图像(gif 帧):
这将返回一个 pygame 表面对象,然后将其附加到一个数组中。该程序将大约15 帧加载到一个数组中,总共使用6 个数组。
我遇到的问题是通过我的while 循环接受输入时。循环播放其空闲动画和运行动画很好,但是,在接受来自键盘的输入时(从 pygame 的事件列表中获取输入......)
for event in pygame.event.get():
通过pygame.KEYDOWN
有非常明显的滞后,导致动画集切换反应迟钝。如果我要使用这种方法制作游戏,则必须对其进行修复。我确定我的代码效率低下,但不产生暂停就足够了。任何帮助都会很棒。
我猜?pygame.clock.tick()
正在创建某种事件滞后,但我不确定如何解决这个问题,如果事件滞后甚至是这种情况。
这是我怀疑有问题的循环:
此处未显示一些变量,但已使用:
charfps = 30
currentchar.posx, currentchar.posy
两个元组都设置在(300, 240)
javascript - 使用javascript读取多个同时键盘输入
我注意到 JavaScript 中键盘输入的一些奇怪行为。我可能在这里遗漏了一些非常明显的东西,但是关于允许同时按下哪些键有一些规则吗?
我使用布尔变量来保持四个键中的每一个的状态,如下所示,这允许同时按下许多键(硬件允许):
例如,在两台机器上,我尝试过以下 jsfiddle 允许您同时向上和向右按空格,但不能向上和向左按空格。在这两台机器上,它在 Chrome、FF 和 IE 中的作用相同。在第三台机器上它可以完美运行,我可以同时握住所有 4 个键。
现在推测这与硬件有关,但我的主要问题是为什么左右键的操作存在差异?这似乎不一致,我确信这是有原因的。
(您必须在结果窗格中单击才能触发事件)