C#アプリケーションの起動時にシフトキーが押されているか判定する方法
Win32のアプリケーションや、MS-ExcelやAccessではシフトキーを押しながらアプリケーションを起動すると、いつもとは違う方法で起動させることができる機能がある。
これをC#のWindowsFormのアプリケーションで実現するには、どうすればいいのかなー、とおもったら、とっても簡単なことだった。
Control.ModifierKeys
の静的プロパティは、取得した時点の修飾キーの状態を示してくれている。
namespace MyApp { static class Program { /// <summary> /// アプリケーションのメイン エントリ ポイントです。 /// </summary> [STAThread] static void Main() { // 現在シフトキーやコントロールキーが押されている状態を示す MessageBox.Show("modifiers=" + Control.ModifierKeys); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MyAppForm()); } } }
簡単なことだけど、試すまでは信じられなかったのでメモしておく。