我的 friend 正在学习挪威语,我想制作一个全局热键程序来发送诸如
æ
ø
å
我的问题是 keybd_event 函数不允许我发送那些 key ,我似乎仅限于 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 直到!
关于c++ - 如何使用 C++ (keybd_event) 发送 unicode 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3726812/