【发布时间】:2010-09-16 21:58:52
【问题描述】:
我的朋友正在学习挪威语,我想制作一个全球热键程序,它可以发送诸如
之类的键æ
ø
å
我的问题是 keybd_event 函数不允许我发送这些密钥,我似乎仅限于 virtual key codes 是否有其他函数可以使用或一些技巧来发送它们?
【问题讨论】:
我的朋友正在学习挪威语,我想制作一个全球热键程序,它可以发送诸如
之类的键æ
ø
å
我的问题是 keybd_event 函数不允许我发送这些密钥,我似乎仅限于 virtual key codes 是否有其他函数可以使用或一些技巧来发送它们?
【问题讨论】:
您必须改用 SendInput。 keybd_event 不支持发送此类字符(除非它们已经在当前代码页中,例如在挪威计算机上)。发送å的一些示例代码:
KEYBDINPUT kb={0};
INPUT Input={0};
// down
kb.wScan = 0x00c5;
kb.dwFlags = KEYEVENTF_UNICODE;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));
// up
kb.wScan = 0x00c5;
kb.dwFlags = KEYEVENTF_UNICODE|KEYEVENTF_KEYUP;
Input.type = INPUT_KEYBOARD;
Input.ki = kb;
::SendInput(1,&Input,sizeof(Input));
如果您不知道:在 Windows 上安装其他键盘布局并使用快捷方式在它们之间切换很容易。
Lykke 直到!
【讨论】: