seraphyの日記

日記というよりは過去を振り返るときのための単なる備忘録

C#アプリケーションの起動時にシフトキーが押されているか判定する方法

Win32のアプリケーションや、MS-ExcelAccessではシフトキーを押しながらアプリケーションを起動すると、いつもとは違う方法で起動させることができる機能がある。


これを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());
        }
    }
}

簡単なことだけど、試すまでは信じられなかったのでメモしておく。