C# InputSimulator: выбор ключа из поля со списком

У меня есть массив, заполненный именами ключей из InputSimulator.

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

После этого я заполняю выпадающие списки этими строками. Есть 3 комбинированных списка.

Итак, я бы хотел использовать такую ​​функцию:

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

Можно ли заполнить аргументы этой функции именами клавиш, которые были выбраны в выпадающих списках?

Для меня было очевидным, как это сделать с помощью функции SendKeys, потому что она использовала строку в качестве аргумента, но теперь мне нужно сделать это с помощью InputSimulator.

1 ответ

Решение

У вас может быть массив, содержащий все ключи в том порядке, в котором они находятся на VirtualKeyCodeПеречисление. Затем вы просто бросаете его вVirtualKeyCode как только вы используете ModifiedKeyStroke.

вот так

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);
Другие вопросы по тегам