C#のWindowsアプリケーションで二重起動を禁止するにはMutexを使う方法がある。 Mutexを使った方法では、後から起動されようとしたインスタンスのコマンドライン引数を、起動済みのインスタンスが受け取ることが出来ない。 Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBaseを用いることで上記の問題を解決出来る。 Microsoft.VisualBasicをプロジェクトの参照に追加して次のようなクラスを用意する。 using System.IO; using Microsoft.VisualBasic.ApplicationServices; class myApplication:WindowsFormsApplicationBase{ public myApplication() : base