Process.Start()
オブジェクトを返しProcess
ます。あなたができることはProcess startedProcess;
、ボタンがクリックされたときに初期化されるクラス変数(たとえば)を持つことです。その変数がnullの場合は、プロセスがまだ開始されていないことを意味し、そのアプリケーションを起動する必要があります。そうでない場合は、すでに実行されているため、無視する必要があります。
基本的な例を次に示します。
Process startedProcess = null;
public void button1_Clicked(object sender, EventArgs e)
{
if ( startedProcess == null )
startedProcess = Process.Start("path\\to\\process.exe");
}
アプリケーションがすでに実行されている場合にそのウィンドウに自動的に切り替えることを検討している場合、.NETにはこれをネイティブに行うための組み込みメソッドがありません。user32.dllからDLLImportsする必要があります。例は、このページのコメントにあります:http ://www.eggheadcafe.com/community/aspnet/14/21984/switch-to-another-runnin.aspx