ALT 键键盘事件不适用于所有键盘布局?

ALT key keyboard event is not working in all keyboard layout?

我正在尝试使用键盘事件将字符发送到应用程序。我想按下 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 中有效,在其他键盘中无效。我不知道这是为什么 happening.How 我可以让它独立于键盘布局吗

可能与你的第二个参数(扫码)为0有关

对于'ALT',硬件'Make Code'是56或0x38,'Break Code'是184或0xB8。我已经看到应用程序将其中任何一个用于键 down/up。我的键盘似乎为两者发送 0x38。

另请注意,0x0001 的 EXTENDEDKEY 表示您正在使用 "Right ALT",而 0x0000 用于 "Left ALT"(以防万一对您的应用程序产生影响)。