以编程方式获取物理键盘布局

Meh*_*dad 4 winapi keyboard-layout

有没有办法以编程方式找出计算机的键盘类型(即键的位置,以及哪些位置存在哪些额外的键)?

如果键盘非常不规范,那么一点点误差是可以接受的,但总的来说,重点是构建一个类似屏幕键盘的应用程序,可以在屏幕上动态绘制键盘布局,准确度高。

Adr*_*son 5

当连接到计算机时,键盘会向操作系统发送“扫描代码”。在 Windows 上,扫描码然后转换为虚拟键(键盘的硬件独立映射),然后转换为真实字符。

MapVirtualKeyEx()Windows API的功能允许您在扫描码、虚拟键和字符之间进行转换。它还应该能够告诉您密钥是否不存在。

连同GetKeyboardLayout()which 告诉您哪个 keybaord 在任何时间点处于活动状态(不同运行的应用程序的键盘布局可能不同),它应该允许您构建非常准确的键盘映射。

无论如何,看看 keyboard input section of the MSDN

我要补充一点,所有键盘的布局几乎相同。虽然无法知道按键的物理位置,但您可能可以从扫描码和自己键盘的基本知识中猜出。