C# InputSimulator:从组合框中选择键

C# InputSimulator: choosing key from combobox

我有一个数组,里面填满了来自 InputSimulator 的键名。

readonly string[] keys = new string[119] 
    {   
        "",
        "TAB",
        "RETURN",
        "SHIFT",
        "CONTROL", 
        ...
    }

之后我用这个字符串填充组合框。 有 3 个组合框。

所以,我想使用这样一个功能:

sim.Keyboard.ModifiedKeyStroke(VirtualKeyCode.CONTROL, VirtualKeyCode.VK_V);

是否可以使用在组合框中选择的键名来填充此函数的参数?

我很清楚如何使用 SendKeys 函数执行此操作,因为它使用字符串作为参数,但现在我需要使用 InputSimulator 来执行此操作。

您可以让数组按照它们在 VirtualKeyCode 枚举中的顺序包含所有键。然后你只要用 ModifiedKeyStroke.

就把它转换成 VirtualKeyCode

像这样

sim.Keyboard.ModifiedKeyStroke((VirtualKeyCode)combobox1.SelectedIndex, (VirtualKeyCode)combobox2.SelectedIndex);

编辑:

更好的是,您可以使用 Enum.Parse(typeof(VirtualKeyCode), comboboxvalue) 根据组合框字符串值获取所需的枚举,并在函数中使用它。

像这样:

sim.Keyboard.ModifiedKeyStroke((VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), combobox1value), (VirtualKeyCode)Enum.Parse(typeof(VirtualKeyCode), combobox2value);