То, что вы хотите сделать, это поведение по умолчанию, т. Е. Любая программа может запускать несколько экземпляров.Для предотвращения запуска приложения более одного раза потребуется дополнительный код.
Просмотр Отражатель на Process.Start()
public static Process Start(ProcessStartInfo startInfo)
{
Process process = new Process();
if (startInfo == null)
{
throw new ArgumentNullException("startInfo");
}
process.StartInfo = startInfo;
if (process.Start())
{
return process;
}
return null;
}
Вы можете отслеживать, куда возвращается null
,Он вернет null
, если процесс не запустится внутри process.Start()
.
public bool Start()
{
this.Close();
ProcessStartInfo startInfo = this.StartInfo;
if (startInfo.FileName.Length == 0)
{
throw new InvalidOperationException(SR.GetString("FileNameMissing"));
}
if (startInfo.UseShellExecute)
{
return this.StartWithShellExecuteEx(startInfo);
}
return this.StartWithCreateProcess(startInfo);
}
...
Вы поняли идею.Продолжайте отслеживать, почему вы получаете значение null
.Если у вас нет копии Reflector , GET IT NOW!
NB: Приносим извинения, что это не дает точных решение вашей проблемы, однако это показывает, что вы можете найти его самостоятельно.:)
HTH,