自作のソフトウェアならば2重起動防止をすることは簡単ですが、既製のソフトウェアだと2重起動防止をするには少々テクニックが必要です。
組み込みシステムを開発する場合には、結構必要な場合がありますので記述しておきます。
サンプルコード
using System.Diagnostics;
private Process DStartPrevention;
DStartPrevention = new Process();
DStartPrevention.StartInfo.FileName = @"C:\Windows\System32\notepad.exe";
private void Click_Button(object sender, RoutedEventArgs e)
{
try
{
if(DStartPrevention.HasExited) // プロセスが起動していない
{
DStartPrevention.Start();
}
else
{
// プロセス起動中
}
}
catch(InvalidOperationException)
{
// 一度も実行していないときに例外が発生する(HasExitedで発生)
DStartPrevention.Start();
}
}