私は C# でショートカットを作成中です。SendKeys を使用して Ctrl、Alt、Shift を実装することに成功しました。
このような;
Ctrl+ C:
System.Windows.Forms.SendKeys.SendWait("^c");
またはAlt+ F4:
System.Windows.Forms.SendKeys.SendWait("%{F4}");
しかし、SendKeys で「Windows キー」を送信できません。例: Win+ E:を試しました.SendWait("#e")
が、機能しません。「#」の代わりに何を使用すればよいですか?
ありがとう。
ベストアンサー1
実際に欲しいのは次のようになります:http://inputsimulator.codeplex.com/
C# にメソッドを公開するという大変な作業がすべて完了しましたWin32 SendInput
。これにより、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 の任意の組み合わせを押しながら、他のいくつかのキーを押すように指定するには、それらのキーのコードを括弧で囲みます。たとえば、SHIFT キーを押しながら E キーと C キーを押すように指定するには、「+(EC)」を使用します。SHIFT キーを押しながら E キーを押し、その後 SHIFT キーなしで C キーを押すように指定するには、「+EC」を使用します。
ESC
と をE
同時に押す必要があるため、それらを括弧で囲む必要があることに注意してください。