Убивание процесса при запущенном другом процессе
Есть такая задача:
Есть 2 exe файла, например program_1.exe и program_2.exe. Имена их процессов, соответственно, такие же. Необходимо, чтобы нельзя было одновременно запустить обе программы, но при этом, чтобы, если сейчас запущена program_1, то при запуске program_2 убивался процесс program_2, а если сейчас запущена program_2, то при запуске program_1 убивался именно процесс program_2, т.е. убиваться должен именно program_2, независимо от того, что было запущено. Имею, к сожалению, только начальные навыки программирования на C++, представляю себе это примерно так:
Программа висит в памяти, при запуски какого-либо приложения, она проверяет его на соответствие его на какой-либо из этих 2ух процессов, потом соответственно, проверяет, запущен ли другой, если да, то убивает один из них.
Буду благодарен за любую помощь, зарание спасибо!
Цитата: g0rn
Доброго времени суток!
Есть такая задача:
Есть 2 exe файла, например program_1.exe и program_2.exe. Имена их процессов, соответственно, такие же. Необходимо, чтобы нельзя было одновременно запустить обе программы, но при этом, чтобы, если сейчас запущена program_1, то при запуске program_2 убивался процесс program_2, а если сейчас запущена program_2, то при запуске program_1 убивался именно процесс program_2, т.е. убиваться должен именно program_2, независимо от того, что было запущено. Имею, к сожалению, только начальные навыки программирования на C++, представляю себе это примерно так:
Программа висит в памяти, при запуски какого-либо приложения, она проверяет его на соответствие его на какой-либо из этих 2ух процессов, потом соответственно, проверяет, запущен ли другой, если да, то убивает один из них.
Буду благодарен за любую помощь, зарание спасибо!
Есть такая задача:
Есть 2 exe файла, например program_1.exe и program_2.exe. Имена их процессов, соответственно, такие же. Необходимо, чтобы нельзя было одновременно запустить обе программы, но при этом, чтобы, если сейчас запущена program_1, то при запуске program_2 убивался процесс program_2, а если сейчас запущена program_2, то при запуске program_1 убивался именно процесс program_2, т.е. убиваться должен именно program_2, независимо от того, что было запущено. Имею, к сожалению, только начальные навыки программирования на C++, представляю себе это примерно так:
Программа висит в памяти, при запуски какого-либо приложения, она проверяет его на соответствие его на какой-либо из этих 2ух процессов, потом соответственно, проверяет, запущен ли другой, если да, то убивает один из них.
Буду благодарен за любую помощь, зарание спасибо!
Допустима ли ситуация запуска двух копий program_1 или program_2? Если да - тогда необходимо искать процесс по имени и если запускается например program_2 - искать в процессах с именем program_1 и если он есть - завершать программу. Если по логике может быть запущена только одна копия программы - тогда используй мьютексы. Алгоритм такой если запускается program_1 - пытаешься создать мьютекс - если ошибка - мьютекс уже создан - ищешь в памяти и завершаешь процесс с именем program_2. Если запускается program_2 и таже ошибка - просто завершаешь процесс. Наличие третьей программы тут абсолютно ненужно.
По вопросам как создать мьютекс и с чем его едят - используйте поиск по форуму. Тема закрыта. Если возникнут вопросы - вам стоит задавать их