4

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

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

4

2 回答 2

5

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

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

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

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

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

于 2011-01-18T10:43:17.443 回答
4

没有一种机制可以让键盘告诉 Windows 它的物理布局是什么样的。使用 Windows 版本的屏幕键盘 osk.exe 可以轻松查看。它似乎能够猜出机器的外形尺寸(笔记本电脑与台式机),但在我的笔记本电脑上,它与键盘的布局不匹配。

使用 osk.exe 布局作为模板,这样没有人会抱怨你的布局不匹配。

于 2011-01-18T05:54:50.127 回答