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

0 投票
1 回答
1024 浏览

c++ - ncurses getch() 每隔一个字符跳过一次

我正在编写一个俄罗斯方块游戏,其中 ncurses 使用 getch() 获取键盘输入。对于完成的游戏,nodelay() 将处于活动状态,但出于测试目的,我已将其注释掉。出于某种原因,我的游戏循环调用的输入函数忽略了每个第二个字符。例如,输入“q”会关闭我的程序。如果我输入 aqaqaqaqaq 的序列......程序将永远不会关闭,因为 q 没有注册。下面是 init 是我的 ncurses 代码的函数,下面是我的输入函数。

编辑:如果重要的话,我正在测试在 Windows 上的 virtualbox 中运行的 Ubuntu 中的代码。

0 投票
1 回答
861 浏览

c++ - windows识别键后检测键盘输入

我正在构建一个程序,可以在屏幕上打印出按下按钮的值。当程序的窗口不活动时,我也需要它工作。我尝试使用 GetAsyncKeyState(int),效果很好。但是,我可以将某些字符串附加到键上,但它不适用于所有类型的键盘(例如,在英文键盘上 shift+2 是 @,而在我的键盘上则不是)。如何检测 Windows 完成的键输入的后处理(在记事本中书写时打印在屏幕上的字符)?

0 投票
1 回答
3146 浏览

c# - 如何获得通过按住 shift 获得的字符?

我将尝试更好地解释我的意思,并且我还将尝试使问题不受语言影响,尽管如果有一种方法可以在 C# 中执行我想要的操作而无需引用任何内容,那就太好了。反正。

我正在处理键盘输入,并将其转换为字符串。一切都好。我得到了 Shift 和 CapsLock 键的状态并 EXOR 它,所以我可以找出结果字符串的大小写。

而且暂时没有问题。如果用户在按住 shift 或切换大写锁定时键入“a”,则它变为“A”。

但是,如果用户决定键入“!”,即“1”加上 shift,我只会得到 1,因为“1”大写仍然是“1”。

在问这个问题之前,我在网上看了一些,但我得到的只是“自己映射键”。这真的是唯一的答案吗?此外,如果我映射了按键,然后具有不同键盘布局的用户尝试使用我的应用程序,会发生什么情况?提前致谢。

0 投票
2 回答
1083 浏览

c++ - 从 DLL 创建的 C++ 无模式对话框无法正确处理输入

我在从 DLL 文件创建无模式对话框时遇到问题。我的对话框没有什么特别之处,只有一个确定按钮和一个编辑框。我查看了这篇 Microsoft 知识库文章 ( http://support.microsoft.com/kb/233263 ) 并实施了它的解决方案来创建一个窗口挂钩来抓取和处理消息。

Microsoft 提供的方法解决了 Tab 键问题,但是,它产生了另一个问题。当我在对话框的编辑框中键入时,我按的任何内容都会重复 4 次。例如,如果我在键盘上按“a”,“aaaa”将出现在编辑框中。

如果我禁用 Window Hook,那么编辑框可以正常工作并且只显示一个“a”。

我需要对 Window Hook 程序做些什么来解决这个问题?

任何帮助是极大的赞赏。

- - 编辑 - -

根据要求,我的窗口挂钩程序代码:(与知识库文章相同)

我的对话框回调过程:

两者hHookhwndDllDlg分别定义为HHOOKHWND

0 投票
3 回答
1019 浏览

c# - 如何在 C# 的 if() 语句中调用多个函数

所以我需要 ac#if()语句,它应该看起来像这样,也许?代码:

这就是我使用上述变量的代码:

有什么建议么?

0 投票
3 回答
5828 浏览

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.

0 投票
0 回答
1380 浏览

java - java awt键盘输入的首选方式是什么

我在互联网上看到了许多相互矛盾的建议,包括这里关于如何使用 awt 和 swing 处理输入的建议,并且有几个人在我的代码上工作过,而且一团糟。

选项

  • 实现 KeyListener 或扩展 KeyAdapter
  • ^到应用程序的主类,使用匿名类,使用私有类或使用外部输入管理类。
  • 将事件对象发送到需要知道输入的每个对象,发送按下的键数组,或者使每个类成为侦听器并将其添加到主类。

所以我可以

或者

或者

或者

或者

并且implements KeyListener可以替换为,extends KeyAdapter但我不会这样做,因为 java 只允许一个父类。

然后有一个我不知道它是如何进入我的代码的

或者

真的,awt 键盘输入的最佳实现是什么?

0 投票
2 回答
1265 浏览

javascript - 只要按下特定键,就在循环中运行函数

只要按下箭头键,我就想重复运行特定的代码。我试图在一周内尽可能多地了解有关 JavaScript 的内容并编写了这段代码(见下文),但它不起作用。现在我正在尝试在页面上打印一些东西,但在最终实现中我需要重复运行一个文件。另外我想知道一种方法来打印新执行的函数的结果,而不会擦除屏幕上已经存在的任何内容。

PS:请原谅我糟糕的脚本技巧。我试图快速掌握所有内容,以便将其整合到我正在从事的项目中。

0 投票
1 回答
3313 浏览

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)

0 投票
1 回答
1435 浏览

javascript - 使用javascript读取多个同时键盘输入

我注意到 JavaScript 中键盘输入的一些奇怪行为。我可能在这里遗漏了一些非常明显的东西,但是关于允许同时按下哪些键有一些规则吗?

我使用布尔变量来保持四个键中的每一个的状态,如下所示,这允许同时按下许多键(硬件允许):

例如,在两台机器上,我尝试过以下 jsfiddle 允许您同时向上和向右按空格,但不能向上和向左按空格。在这两台机器上,它在 Chrome、FF 和 IE 中的作用相同。在第三台机器上它可以完美运行,我可以同时握住所有 4 个键。

现在推测这与硬件有关,但我的主要问题是为什么左右键的操作存在差异?这似乎不一致,我确信这是有原因的。

http://jsfiddle.net/SYS5b/

(您必须在结果窗格中单击才能触发事件)