Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2022, 08:51   #1
Areostar
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 50
По умолчанию Запрет повторного запуска

Вопрос:

Как запретить повторный запуск приложения?
Areostar вне форума Ответить с цитированием
Старый 03.12.2022, 11:23   #2
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

1) Поискать по имени модуля в списке процессов
2) Поискать по имени и классу окна
3) Все вышеперечисленное и предусмотреть сообщение у окна для передачи параметров запуска нового экземпляра программы.
macomics вне форума Ответить с цитированием
Старый 03.12.2022, 11:39   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
1) Поискать по имени модуля в списке процессов
Переименовываем exe.exe в exe1.exe и запускаем

Цитата:
Сообщение от macomics Посмотреть сообщение
2) Поискать по имени и классу окна
А если консольное? Или сервисное?

Цитата:
Сообщение от macomics Посмотреть сообщение
3) Все вышеперечисленное и предусмотреть сообщение у окна для передачи параметров запуска нового экземпляра программы.
Зачем? Задача запретить повторный запкуск, а не запускать еще.

Используйте дедовский способ: сохдаете глобальный именованный примитив - эвент, мютекс, ... и проверяете его при запуске.
p51x вне форума Ответить с цитированием
Старый 03.12.2022, 11:53   #4
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
А если консольное? Или сервисное?
Тогда мьютексы/именованные пайпы

Еще можно в файл записывать PID, а перед запуском проверять наличие файла, наличие процесса с этим PID. Перед закрытием удалить файл.

Последний раз редактировалось macomics; 03.12.2022 в 12:01.
macomics вне форума Ответить с цитированием
Старый 03.12.2022, 20:05   #5
Areostar
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 50
По умолчанию

что почитать по теме? Статьи и т.д.
Areostar вне форума Ответить с цитированием
Старый 03.12.2022, 20:23   #6
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
именованные пайпы
Зачем? Чтобы добавить лишней мороки?

Цитата:
Сообщение от macomics Посмотреть сообщение
Еще можно в файл записывать PID, а перед запуском проверять наличие файла, наличие процесса с этим PID. Перед закрытием удалить файл.
А если прав на запись нет? А если вообще файловой системы нет? Главное файл не забыь залочить, а то ведь могут и удалить...

Цитата:
Сообщение от Areostar Посмотреть сообщение
то почитать по теме?
мсдн по createevent, createmutex и т.д.
p51x вне форума Ответить с цитированием
Старый 03.12.2022, 20:28   #7
Areostar
Пользователь
 
Регистрация: 19.12.2007
Сообщений: 50
По умолчанию

СПС
Areostar вне форума Ответить с цитированием
Старый 03.12.2022, 21:50   #8
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Зачем? Чтобы добавить лишней мороки?
Чтобы передать параметры запуска нового экземпляра программы.
Цитата:
Сообщение от p51x Посмотреть сообщение
А если вообще файловой системы нет?
Не припомню, чтобы винда умела работать без файловой системы. Вы с UNIX не путаете её.
macomics вне форума Ответить с цитированием
Старый 04.12.2022, 09:07   #9
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
Сообщение от macomics Посмотреть сообщение
Чтобы передать параметры запуска нового экземпляра программы.
Еще раз спрашиваю: Зачем? Еще раз: задача ЗАПРЕТИТЬ последущие запуски. Хоть с параметрами, хоть без.

Цитата:
Сообщение от macomics Посмотреть сообщение
Не припомню, чтобы винда умела работать без файловой системы. Вы с UNIX не путаете её.
Ну если вы кроме десктопных систем ничего не видели, то ...
p51x вне форума Ответить с цитированием
Старый 04.12.2022, 10:06   #10
macomics
Участник клуба
 
Регистрация: 17.04.2022
Сообщений: 1,833
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Еще раз: задача ЗАПРЕТИТЬ последущие запуски.
Это не исключает возможности реагировать на них из уже запущенной программы.
macomics вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет повторного запуска приложения FaTaL Общие вопросы Delphi 1 07.07.2022 16:25
как заново выполнить отладку после повторного запуска? nikytt Visual C++ 4 30.08.2015 17:29
Сохранение измененных данных в datagridview после повторного запуска mdiChild-окна программы с этим же dgv zzyika Базы данных (ADO.NET, LinqToSql, ORM Entity Framework, NHibernate) 1 27.02.2015 04:49
Запрет запуска приложений Google[Bot] Безопасность, Шифрование 21 16.01.2013 17:31
Защита от повторного запуска Vladya Помощь студентам 8 24.06.2009 09:04