|
|
|||||||||||
О запрете повторного запуска приложения14.09.2014, 15:53. Показов 2080. Ответов 2
Метки нет (Все метки)
Здравствуйте !
Решил "украсить" свой утиль запретом повторного запуска. Вопрос 1) Если я создаю мютекс, а пользователь закроет приложение через "Диспетчер задач", то мютекс не освободится. Как поступать в таком случае? Я конечно могу дополнительно проверять кол-во экземпляров процесса по имени, но это выглядит не очень красиво. Вопрос 2) Ошибки в реализации. Я взял 2 способа. 1) Семафор CreateSemaphore, ReleaseSemaphore
Если передать атрибут безопасности 0, то семафор создается без ошибок, но освободить его нельзя, т.к. судя из MSDN хендл должен был быть открытым с привилегией SEMAPHORE_MODIFY_STATE. 2) Мютекс (здесь все работает хорошо, но только в скомпилированном состоянии). Внутри IDE все функции возвращают правильные коды возврата (ReleaseMutex = 1, LastDllError = 0), но в результате мютекс не освобождается (повторный запуск - CreateMutex LastDllError = ERROR_ALREADY_EXISTS). Хотелось бы знать почему. CreateMutex, ReleaseMutex
0
|
|||||||||||
| 14.09.2014, 15:53 | |
|
Ответы с готовыми решениями:
2
Запрет повторного запуска приложения Запрет повторного запуска приложения
|
|
Модератор
|
||
| 14.09.2014, 18:54 | ||
Сообщение было отмечено Dragokas как решение
РешениеПо 2-му вопросу. Почитай про мьютексы и семафоры. Ты вообще неправильно делаешь. Закрывается хендл объкта (и удаляется при обнулении счетчика хендлов) через CloseHandle. ReleaseMutex/Semaphore используется для освобождения захваченного семафора и используется для синхронизации. Для твоей задачи эти функции не нужны.
2
|
||
|
|
|
| 14.09.2014, 19:59 [ТС] | |
|
Спасибо. Убедился в сказанном ))
0
|
|
| 14.09.2014, 19:59 | |
|
Помогаю со студенческими работами здесь
3
После закрытия приложения и его повторного запуска, добавленные данные исчезают из БД Исключение повторного запуска Блокировка повторного запуска программы Qt 4.8 / Блокировка повторного запуска программы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|