6

我的朋友正在学习挪威语,我想制作一个全球热键程序,它可以发送诸如

æ
ø
å

我的问题是 keybd_event 函数不允许我发送这些键,我似乎仅限于虚拟键代码是否有另一个我可以使用的函数或一些技巧来发送它们?

4

1 回答 1

7

您必须改用 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 上安装其他键盘布局并使用快捷方式在它们之间切换很容易。

直到!

于 2010-09-16T13:40:32.397 回答