Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
| Unconnected |
Сообщение
#1
|
![]() mea culpa ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Нужно встроить в программу проверку, не запущена ли уже эта её копия. В гугле это есть, но.. осложняется тем, что теоретический дабл-запуск будет как бы фор-кликом, то есть мгновенно после первого запуска. И видимой формы тоже нет..
-------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
![]() ![]() |
| IUnknown |
Сообщение
#2
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: 627 |
Кстати, тут у тебя еще есть неприятные мелочи, которые могут сильно осложнить тебе жизнь:
1) f_m := CreateMutex(nil, true, srMutexName);Я бы поменял проверки местами: то есть, сначала убедись, что CreateMutex вернула не NULL, и только потом проверяй, а что за ошибка? Если ERROR_ALREADY_EXISTS (ну, и ERROR_ACCESS_DENIED тоже можешь сюда включить) - то все нормально, мьютекс просто уже существует... Кстати, зачем ты его при этом удаляешь - не понятно. Если он есть - то удалить его может только владелец, кто ж тебе даст другому приложению удалить объект ядра? Проблемы что-ли нужны? 64-битные ОСи таких ошибок не прощают 2) даже если и даст - мьютекс не удаляется через CloseHandle... Специально была придумана ReleaseMutex... То есть, во втором чтении код принимает вид: uses (не надо этих Сишных заморочек с константой слева/именем функции справа. Это в случае Дельфи бесполезно) Сообщение отредактировано: IUnknown - |
Unconnected Отслеживание двойного запуска 25.06.2011 8:12
IUnknown И что? CreateMutex - атомарная операция. Первый из… 25.06.2011 14:49
Unconnected var
f_m: THandle; // mutex
begin
f_m := Creat… 26.06.2011 3:13
IUnknown
program Project1;
{$APPTYPE CONSOLE}
uses… 26.06.2011 3:37
Unconnected Угу, спасибо, все сделал по рекомендациям, работае… 26.06.2011 7:14
IUnknown Этот "стиль" пришел из Си... Ибо если на… 26.06.2011 12:34![]() ![]() |
|
Текстовая версия | 5.11.2025 9:43 |