将密钥从密钥枚举转换为ScanCode和VirtualKey

时间:2013-08-19 13:17:27

标签: c# winapi keyboard keypress

我在List<Keys>中列出了我在

中捕获的键元素
private void KeyboardHook_KeyDown(object sender, KeyEventArgs e) {}

方法,现在我遇到了一个问题 - 我需要模拟按下所有这些键,所以我的想法是使用keybd_event(VirtualKey, ScanCode, 0, 0);来模拟键,但我不知道如何获取VirtualKey当我所有的都是Keys枚举对象时扫描代码。 SendKeys不是一个选项,因为我需要他们同时按下它们,而不是每个按下它们。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

如前所述,您的枚举是VirtualKey代码。 要获取扫描代码,您需要调用MapVirtualKey(vk, MAPVK_VK_TO_VSC) WinAPI。