SendKeysを使用してWindowsキーを送信する 質問する

SendKeysを使用してWindowsキーを送信する 質問する

私は 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同時に押す必要があるため、それらを括弧で囲む必要があることに注意してください。

おすすめ記事