private static bool StartInstance(Runner runner) { if (runner.RunnerPath != null) { return Process.Start(new ProcessStartInfo() { FileName = runner.RunnerPath, UseShellExecute = true, }) != null; } return false; }
private static bool KillInstances(Runner runner) { var mutex = OpenMutex(MUTEX_ALL_ACCESS, false, runner.Mutex); if (mutex == IntPtr.Zero) { return true; } else { CloseHandle(mutex); try { foreach (var process in Process.GetProcessesByName(runner.ProcessName)) { process.Kill(); } } catch { } return true; } }