私はC#のショートカットに取り組んでいます。 SendKeysでCtrl、Alt、Shiftを実装することに成功しました。
このような;
Ctrl + C:
_System.Windows.Forms.SendKeys.SendWait("^c");
_
または Alt + F4:
_System.Windows.Forms.SendKeys.SendWait("%{F4}");
_
しかし、「Windowsキー」をSendKeysで送信することはできません。私は元: Win + E :.SendWait("#e")
が動作していません。 「#」の代わりに何を使うべきですか?
ありがとう。
本当に欲しいのはこれです: http://inputsimulator.codeplex.com/
_Win32 SendInput
_メソッドをC#に公開するという大変な作業はすべて完了しています。これにより、windowsキーを直接送信できます。これはテストされ、機能します:
InputSimulator.SimulateModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_E);
注ただし、場合によってはアプリケーションにキーを明確に送信したい場合があります(_ALT+F4
_など)、その場合はForm
を使用しますライブラリメソッド。他では、一般的にOSに送信したい場合は、上記を使用します。
古い
これを参照用にここに保持すると、すべてのオペレーティングシステムで機能するわけではなく、常に希望どおりに動作するとは限りません。これらのキーストロークをアプリに送信しようとしていることに注意してください。通常、OSはそれらを早期にインターセプトします。 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の任意の組み合わせを押しながら他のいくつかのキーを押すように指定するには、それらのキーのコードを括弧で囲みます。たとえば、EとCを押しながらSHIFTを押し続けるように指定するには、「+(EC)」を使用します。 Eを押しながらSHIFTを押し、続いてSHIFTを押さずにCを押すように指定するには、「+ EC」を使用します。
ESC
と(たとえば)E
を同時に押す必要があるため、これらを角かっこで囲む必要があることに注意してください。
Alt + F4は括弧内でのみ機能します
SendKeys.SendWait("(%{F4})");
inputSimulatorを nugetパッケージ からダウンロードします。
次にこれを書いてください:
var simu = new InputSimulator();
simu.Keyboard.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.VK_E);
私の場合、新しい垂直デスクトップを作成するには、3つのキーが必要で、次のようなコード(windows key + ctrl + D):
simu.Keyboard.ModifiedKeyStroke(new[] { VirtualKeyCode.LWIN, VirtualKeyCode.CONTROL }, VirtualKeyCode.VK_D);
SetForegroundWindow( /* window to gain focus */ );
SendKeys.SendWait("^{ESC}"); // ^{ESC} is code for ctrl + esc which mimics the windows key.