1

我的数组中填充了来自 InputSimulator 的键名。

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

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

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

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

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

这对我来说很明显,如何使用 SendKeys 函数来完成,因为它使用字符串作为参数,但现在我需要使用 InputSimulator 来完成。

4

1 回答 1

1

您可以让数组按照它们在VirtualKeyCode枚举中的顺序包含所有键。然后,您只需在使用时将其转换VirtualKeyCodeModifiedKeyStroke.

像这样

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);
于 2019-12-01T20:18:36.713 回答