问题标签 [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 回答
112 浏览

java - JavaFX KEY_TYPED 事件什么都不做

我正在使用简单的库存系统制作视频游戏。我正在尝试这样做,以便每当您按下“Z”键时,它都会显示或隐藏库存 GUI。我不知道为什么,但是 KEY_TYPED 键事件不起作用。KEY_PRESSED 和 KEY_RELEASED 键事件运行良好。

这是我的关键事件处理程序类:

这是我使用关键事件的地方:

当我尝试按下该键时,它完全没有任何作用。

0 投票
2 回答
513 浏览

javascript - 如何在 Linux Chrome 中获取键修饰符

我的 javascript 程序如何确定keydown在 Linux 上的 Chrome 中按下了哪些修饰符以及事件?

我试过这段代码:

而且,虽然它适用于 Firefox:

Linux Chrome 似乎受到修饰符的挑战:

显然, 的metaKeyaltKey字段KeyboardEvent不是跨浏览器的。或者我没有打开 Chrome 的“修改键”功能(我该怎么做?)。或者其他的东西。

上面的代码在 Windows 的 Edge 和 Chrome 中都可以正常工作。(如果 Windows 键是唯一的修饰符,Windows 将捕获它,但您的应用程序可以很好地捕获像 Ctrl-Meta-x 这样的组合)。例如,当我键入 CSMQ AQ 时,上面的代码在 Windows 的 Edge 和 Chrome 中具有相同的输出:

(请注意 Chrome 和 Edge 之间的一个小区别:Edge 具有code=undefined。但是,仍然有足够的信息KeyboardEvent来确定按下了哪个键,除非 Windows 可能在组合 NumLock + Shift + 键盘数字方面存在一些问题)。

我上次使用 Mac 时,它同时支持 Meta 和 Alt 键,所以这个问题可能也适用于 Mac。

在 Linux 中,请确保您的计算机具有可用的 Meta 和 Alt 键,因为一些流行的发行版是开箱即用的。如果设置正确,xmodmap应该说:

因为程序解释mod1为 Meta 和mod3Alt。(使用该xev实用程序获取键盘的键码。)通过如上所示的设置,Firefox、Emacs 和其他程序可以正确捕获所有修饰键。

keydown确定与Linux Chrome 中的事件一起按下的修饰符的正确方法是什么?

0 投票
1 回答
1530 浏览

python - 如何使这个 PyQt5 字符在箭头键输入上移动?

我正在制作一个简单的 PyQt5 应用程序,并且很好奇如何使用箭头键使圆圈移动。我希望它在每次按下时移动 5 个像素。

0 投票
1 回答
908 浏览

assembly - int 21h ah 02h 由于某种原因不起作用

我的任务是从终端(又名atoi)读取一个数字,然后将其写回终端(又名itoa)。

要读取我使用的字符串int 21h, ah 0ah。当我在调试器中检查它时看起来不错。然后我的atoiitoa看起来也不错,只是在itoa中我int 21h, ah 02h用来显示一个字符,但由于某种原因它没有显示。所以我回到开头,注意到在(read string)int 21h, ah 02h之后写 (print char)没有结果。int 21h, ah 0ah

Screenshot
'8' 是我在开始时显示的字符。'123' 是我输入的字符串,然后按回车键。

0 投票
0 回答
274 浏览

windows - 未定义和未分配的虚拟键码有什么区别?

我想知道未定义和未分配的虚拟键代码之间是否有任何区别,以及是否有任何已知原因说明它们似乎在数字序列中随机分布而不是例如最后组合在一起。

是否已声明未分配的(只是未分配值)而未定义的尚未声明?如果是这样,它们被声明为什么?我相信保留的那些是为了将来可能使用,如果我错了,请纠正我。

0 投票
1 回答
783 浏览

assembly - int 16h/ah=1 即使在用户按下另一个键后也重复给出相同的按键

我正在用汇编语言编写游戏代码,其中恐龙的移动取决于用户按下的键。我已经实现了我的代码,如果用户按下空格键,程序应该终止并且恐龙应该在按下“a”时朝正确的方向移动。但是我面临一个问题,即在第一次按下任何键后,程序不会寻找在显示它一次又一次按下第一个键之后按下的任何其他键。如何解决?

我正在使用 mov ah, 01h 和 int 16h 的函数,它返回 al 寄存器中按下的键的 ascii。在此之后,我将其与所需的 ascii 键进行比较,但这 16h 仅在第一次按下任何键时表现良好。

我期待每当我按下空格键时,程序都会终止,但它只会选择第一次按下的键,然后它会继续根据第一个键进行操作,并且不会查找之后按下的任何键

0 投票
3 回答
719 浏览

c++ - 如何将键盘输入发送到Windows98窗口模式下运行的dos应用程序

我的问题是关于非常古老的技术。我的任务是自动化在 Windows 98 中以 Windows 模式运行的旧 DOS 软件(光谱)。我做了两个不同的解决方案,但它们都不适用于 DOS 应用程序

  1. 第一个解决方案

    • 激活 DOS 应用程序
    • 通过 SendInput 函数发送输入,如下所示:
  1. 通过 i8042 键盘控制器生成按键:使用 D2 命令写入键盘缓冲区命令,如下所示(KEYBOARD_CMD_REG - 0x64,KEYBOARD_DATA_REG - 0x60):

用标准记事本窗口(notepad.exe)测试了这两种解决方案,它们都工作正常,但我无法让它与 DOS 应用程序一起工作。

我在其中生成键盘输入(和整个项目)的代码:https ://github.com/MossbauerLab/Sm2201Autosave/blob/master/MossbauerLab.Sm2201.ExtSaveUtility/src/saveManager/autoSaveManager.cpp

你能帮我解决这个问题吗?

0 投票
1 回答
45 浏览

c - 从键盘输入填充动态数组的问题[C]

我已经在 c 中实现了我自己的动态数组数据结构,现在我正在寻找一种方法来填充它们而不会失去它们的动态性。

如果我写类似

我可以传递给我的程序的元素数量是在编译时定义的,这正是我不希望发生的。

如果我写类似

我也有同样的情况。是否有任何功能可用于从键盘输入数据而没有任何固定尺寸?提前致谢!

0 投票
1 回答
395 浏览

c - 来自键盘输入的动态数组填充[C]

我在 C 中实现了一个动态数组数据结构;我现在正在寻找一种正确的方法来从标准输入填充我的数组。使用 scanf()orfgets()似乎不是一个好主意,因为它们的缓冲区大小在编译时是固定的,我会失去结构的动态性。因此,我正在getline()为要放入数组中的每个字符动态使用和分配内存。

我编写了这个函数来填充来自标准输入的两个数组:

当我执行该函数时,我可以毫无问题地插入第一个字符串,但是当涉及到第二个时,执行直接到最后。我不知道为什么会这样。这是一个小的可编译示例,可以更好地显示我的问题:

另一个问题与我的输入字符串是一个数组有关,char但我的结构被构建为无类型,因此它需要一个 void 指针。我可以创建一个数组intdouble来执行转换,但这也意味着有一个固定的大小。我正在考虑实现我自己的覆盖函数并在将元素插入数组之前调用它。但我真的不知道从哪里开始......有什么建议吗?谢谢。

0 投票
1 回答
295 浏览

docker-compose - 如何在 docker-compose 中使用键盘输入参数?

我需要启动 windows docker-compose包括键盘输入属性。

我使用bat文件:

并包括 docker-compose.yml:

但它不起作用。

如何在docker-compose中使用键盘输入参数?