在msdn 中,
typedef struct tagKEYBDINPUT {
WORD wVk;
WORD wScan;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
} KEYBDINPUT, *PKEYBDINPUT, *LPKEYBDINPUT;
wVk
类型:WORD
虚拟键码。代码必须是 1 到 254 范围内的值。如果dwFlags成员指定KEYEVENTF_UNICODE,则wVk必须为 0。
键盘驱动程序确实将虚拟键码转换为扫描码。但是为什么winapi函数需要扫描码呢?是不是因为 API 直接告诉操作系统而不依赖键盘驱动程序?
一项好处已在以下备注中进行了解释。
设置KEYEVENTF_SCANCODE标志以根据扫描代码定义键盘输入。无论当前使用哪个键盘,这对于模拟物理击键都很有用。一个键的虚拟键值可能会根据当前的键盘布局或按下的其他键而改变,但扫描码将始终相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句