Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Убивание процесса при запущенном другом процессе

33K
23 ноября 2007 года
g0rn
6 / / 23.11.2007
Доброго времени суток!
Есть такая задача:
Есть 2 exe файла, например program_1.exe и program_2.exe. Имена их процессов, соответственно, такие же. Необходимо, чтобы нельзя было одновременно запустить обе программы, но при этом, чтобы, если сейчас запущена program_1, то при запуске program_2 убивался процесс program_2, а если сейчас запущена program_2, то при запуске program_1 убивался именно процесс program_2, т.е. убиваться должен именно program_2, независимо от того, что было запущено. Имею, к сожалению, только начальные навыки программирования на C++, представляю себе это примерно так:
Программа висит в памяти, при запуски какого-либо приложения, она проверяет его на соответствие его на какой-либо из этих 2ух процессов, потом соответственно, проверяет, запущен ли другой, если да, то убивает один из них.

Буду благодарен за любую помощь, зарание спасибо!
1
24 ноября 2007 года
kot_
7.3K / / 20.01.2000
Цитата: 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ух процессов, потом соответственно, проверяет, запущен ли другой, если да, то убивает один из них.

Буду благодарен за любую помощь, зарание спасибо!



Допустима ли ситуация запуска двух копий program_1 или program_2? Если да - тогда необходимо искать процесс по имени и если запускается например program_2 - искать в процессах с именем program_1 и если он есть - завершать программу. Если по логике может быть запущена только одна копия программы - тогда используй мьютексы. Алгоритм такой если запускается program_1 - пытаешься создать мьютекс - если ошибка - мьютекс уже создан - ищешь в памяти и завершаешь процесс с именем program_2. Если запускается program_2 и таже ошибка - просто завершаешь процесс. Наличие третьей программы тут абсолютно ненужно.

1
24 ноября 2007 года
kot_
7.3K / / 20.01.2000
По вопросам как создать мьютекс и с чем его едят - используйте поиск по форуму. Тема закрыта. Если возникнут вопросы - вам стоит задавать их здесь
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог