gpt4 book ai didi

java - 它们真的是虚拟代码吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:26:00 26 4
gpt4 key购买 nike

与 C++/C 相比,shift、[ 、 ]、Del 等某些键的虚拟键代码在 java 中显示为不同的值。例如:

Key     Java       C / C++
Shift 16 160
[ 91 219
] 93 221
\ 92 220
Del 127 46
Window 524 91

这是什么原因?这些代码是虚拟代码还是不同类型?对于包括字母、数字、功能键(F1-F12)、退格键、`等在内的键都是相同的。

我可能误解了一个概念,在那种情况下请澄清。

已在 C/C++ 中 checkin

KBDLLHOOKSTRUCT * kbhook = (KBDLLHOOKSTRUCT *) lParam;
printf("%u\n",kbhook->vkCode);

在 Java 中检查

private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) {                                       
int code = evt.getKeyCode();
// code isEqualTo KeyEvent.VK_DELETE : NOTE

}

引用:KeyEvent class

最佳答案

我应该说,虚拟键码非常虚拟。

如果没有一些代码(例如 JavaKeyToWin32Key、Win32KeyToJava 等),您将无法为您尝试与之互操作的每个平台编写代码。

我相信所有这些键码大多都是历史性的。有些来自硬件设计决策(看看 Apple 的“现代”键代码,其中 0 代码是“A”,1 是“S”,2 是“D”等等 - 我应该继续还是你得到“模式” "遵循键盘布局?)。

“为什么没有标准?”

这是公事,无关个人。三四十年前,每个人都在从零开始开发自己的硬件,二十五年前,每个人都在努力制造最好的 CPU,15 年前,一切都从“平台”开始,在那里一切都被重新定义,但也应该保持与现有解决方案的兼容性(当然是同一家公司)。

Java 是一个标准,但并不适合所有人。它已经是所有操作系统之上的抽象,具有自己的一组键码。所以“VK_”是微软的遗留物,Java 键码可能会受到 Sun Solaris 操作系统的影响,但我不确定。

关于java - 它们真的是虚拟代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10848901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com