ALT键键盘事件不能在所有键盘布局中工作

本文关键字:键盘 布局 工作 事件 不能 ALT | 更新日期: 2023-09-27 18:07:10

我正在尝试使用键盘事件向应用程序发送字符。我想按下Alt键,然后松开它。我使用下面的代码来做这件事。

const int VK_ALT = 0x12;
const uint KEYEVENTF_EXTENDEDKEY = 0x0001;
const uint KEYEVENTF_KEYUP = 0x0002;
keybd_event((byte)VK_ALT, 0, KEYEVENTF_EXTENDEDKEY | 0, 0);
keybd_event((byte)VK_ALT, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, 0);

但是alt键只能在English US layout keyboard中工作,而不能在其他键盘中工作。我不知道为什么会这样。如何使它独立于键盘布局

ALT键键盘事件不能在所有键盘布局中工作

这可能与您的第二个参数(扫描码)为0有关。

对于'ALT',硬件'Make Code'是56或0x38, 'Break Code'是184或0xB8。我见过一些应用程序使用这两种方式来实现上下键。我的键盘似乎都发送0x38。

还要注意0x0001的EXTENDEDKEY表示您正在使用"右ALT",而0x0000表示"左ALT"(以防万一这会对您的应用程序产生影响)。