[Now Supported on Windows NT]
VkKeyScanEx功能将字符转换为相应的虚拟键代码和移位状态。该函数使用由给定的键盘布局句柄标识的输入语言和物理键盘布局来翻译字符。
SHORT VKKeyScanEx(
CHAR【ch】, | //要翻译的字符 |
HKL【dwhkl】 | //键盘布局句柄 |
); |
参数
【ch】
指定要转换为虚拟键代码的字符。
【dwhkl】
标识用于翻译字符的键盘布局。此参数可以是以前由LoadKeyboardLayout函数返回的任何键盘布局句柄。
返回值
如果功能成功,返回值的低位字节包含虚拟键代码,高位字节包含移位状态,它可以是以下标志位的组合:
位 | 含义 |
1 | 按SHIFT键。 |
2 | 按住CTRL键。 |
4 | 按ALT键。 |
如果函数找不到转换为传递的字符代码的键,低位和高位字节均包含-1。
备注
对于使用右键ALT键作为移位键(例如法语键盘布局)的键盘布局,移位状态由值6表示,因为右侧ALT键内部转换为CTRL + ALT。
数字键盘(VK_NUMPAD0至VK_DIVIDE)的翻译将被忽略。此函数仅用于从主键盘部分将字符转换为按键。例如,字符“7”被转换为VK_7,而不是VK_NUMPAD7。
VkKeyScanEx由使用WM_KEYUP和WM_KEYDOWN消息发送字符的应用程序使用。
也可以看看
GetAsyncKeyState, GetKeyboardState, GetKeyNameText, GetKeyState, LoadKeyboardLayout, SetKeyboardState, ToAsciiEx, VkKeyScan