Как убрать дубликат - C#
Формулировка задачи:
Вот кусок кода программы "таймер.exe", при запуске стартует программу "test.exe" с отсрочкой запуска 300 сек (типа таймера сделал)
Суть проблемы, если запустить снова, то она запустит дубликат "таймер" программы и так много раз можно.
Как сделать:
1. Что бы если "таймер" уже запущен (идет отсчет времени до запуска "test.exe" )
при повторном нажатии на программку не запускался дубликат таймера?
2. Если программа "test.exe" уже выполняется, то также не запускался "таймер"
System.Threading.Thread.Sleep(300 * 1000); string exePath = Path.Combine ( Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "papka", "test.exe" ); Process.Start(exePath);
В моем представлении, в код надо добавить типа проверки на активность процессов - "таймер.exe" и "test.exe" и если хоть один из них уже выполняется, то программа "таймер" больше не запускается.
P.S. могу и ошибаться в плане реализации, но думаю Вы поняли, что нужно в итоге сделать.Решение задачи: «Как убрать дубликат»
textual
Листинг программы
HANDLE mutex = CreateMutex(NULL, TRUE, "таймер.exe"); if (mutex == NULL || GetLastError() == ERROR_ALREADY_EXISTS) { if (EnumWindows(&EnumWindowsProc, NULL) && wnd != NULL) { ShowWindow(wnd, SW_RESTORE); SetForegroundWindow(wnd); return true; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д