Запуск только одного экземпляра приложения - C#
Формулировка задачи:
Вобщем есть вот такой вот код
Суть проблемы, при повторном запуске программы, каждый раз открывается в новом процессе. То есть если я запущу её 30 раз то будет естественно 30 одинаковых процессов. Помогите пожалуйста, как сделать так чтобы последующие открытие программы происходили в одном и том же процессе?
using System.Threading; using System.Diagnostics; using System.Text.RegularExpressions; namespace KillArtMoney { class Program { static void Main(string[] args) { for (; ; ) { Process[] ps1 = System.Diagnostics.Process.GetProcesses(); foreach (Process p1 in ps1) { string str_regx = ""; for (int i = 0; i < 1; i++) { if (i == 0) str_regx = @"\.*" + "tratata" + @"\.*"; if (i == 1) str_regx = @"\.*" + "tratata2" + @"\.*"; Regex regex = new Regex(str_regx); MatchCollection matches = regex.Matches(p1.MainWindowTitle); if (matches.Count > 0) { p1.Kill(); } } } Thread.Sleep(10000); } } } }
Или как сделать чтобы программа сканировала процесс и если нужного процесса нет - она само убивалась.
Решение задачи: «Запуск только одного экземпляра приложения»
textual
Листинг программы
if (new System.IO.FileInfo("pr1.exe").Exists) { System.Diagnostics.Process.Start("pr1.exe"); } else { foreach (Process kill2 in Process.GetProcessesByName("nirvana")) kill2.Kill(); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д