예제 #1
0
 private static bool StartInstance(Runner runner)
 {
     if (runner.RunnerPath != null)
     {
         return Process.Start(new ProcessStartInfo()
         {
             FileName = runner.RunnerPath,
             UseShellExecute = true,
         }) != null;
     }
     return false;
 }
예제 #2
0
        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;
            }
        }