Ответ 1
OK получается, что вы действительно хотите: http://inputsimulator.codeplex.com/
Что сделало всю тяжелую работу по раскрытию методов Win32 SendInput
для С#. Это позволяет вам напрямую отправить ключ Windows. Это проверено и работает:
InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_E);
Примечание, однако в некоторых случаях вы хотите специально отправить ключ в приложение (например, ALT+F4
), и в этом случае используйте библиотечный метод Form
. В других случаях вы хотите отправить его в ОС в целом, используйте приведенное выше.
Старый
Сохраняя это здесь для справки, он не будет работать во всех операционных системах и не всегда будет вести себя так, как вы хотите. Обратите внимание, что вы пытаетесь отправить эти нажатия клавиш в приложение, и ОС обычно перехватывает их раньше. В случае Windows 7 и Vista слишком рано (до отправки E
).
SendWait("^({ESC}E)")
или Send("^({ESC}E)")
Примечание отсюда: http://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx
Чтобы указать, что должна быть проведена комбинация SHIFT, CTRL и ALT вниз, пока нажаты несколько других клавиш, приложите код для этих ключи в круглых скобках. Например, чтобы указать, чтобы удерживать SHIFT во время E и C, используйте "+ (EC)". Чтобы указать удерживать клавишу SHIFT во время E, а затем C без SHIFT, используйте "+ EC".
Обратите внимание, что, поскольку вы хотите одновременно нажать ESC
и (скажем) E
, вам нужно заключить их в скобки.