Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Заблокировать запуск программы [D7, XP]


irishka001 ©   (2005-11-23 10:00:00) 

Подскажите, как можно заблокировать повторный запуск программы.


Alexandr Bydantcev   (2005-11-28 22:45:00) [1]

2 Reindeer Moss Eater
Понятие повторного запуска - это отсутствие экземпляра программы в данный момент в памяти. :)  Мне кажется, что это легко и понятно. А фраза про запуск проги понедельник-суббота - непрофессионально.


irishka001   (2005-11-28 17:01:00) [2]


> Alex_KV  

Спасибо. Все получилось. Еще, если кому понадобится, есть неплохая статья: http://subscribe.ru/archive/comp.soft.prog.delphi4all/200203/18182252.html


Reindeer Moss Eater   (2005-11-23 10:24:00) [3]

Alex_KV  

Я запустил программу первый раз в понедельник.
Во вторник комьютер не работал.
Второй раз я её собираюсь запустить в субботу.
Где к тому времени будет твой мьютекс?


Reindeer Moss Eater   (2005-11-23 10:22:00) [4]

Девушка, увлекающаяся психологией, а какой смысл вы вкладываете в понятие "повторный запуск программы"?


Alex_KV   (2005-11-23 10:21:00) [5]

Да, и самое главное после создания проверить
le := GetLastError;
Result := (SysOneCopyMutex <> 0) and (le <> ERROR_ALREADY_EXISTS);

А при завершении программы
if (SysOneCopyMutex <> 0) then CloseHandle(SysOneCopyMutex);


Reindeer Moss Eater   (2005-11-23 10:19:00) [6]

Ну и мой ответ для них же.


Джо   (2005-11-23 10:18:00) [7]


>  [4] Reindeer Moss Eater ©   (23.11.05 10:09)

Да ладно, не зря ж вопрос в "Начинающих".


Alex_KV   (2005-11-23 10:14:00) [8]

Используй mutex.
...
var
 SysOneCopyMutex: THandle = 0;
...
При запуске программы:
 SysOneCopyMutex := CreateMutex(nil, false, AMutexName);
где AMutexName - имя мьютекса, например 'MyMutex'


Reindeer Moss Eater   (2005-11-23 10:09:00) [9]

Там недопущение повторного запуска делается во время этого самого повторного запуска. Уже случившегося.


Джо   (2005-11-23 10:07:00) [10]


> irishka001 ©   (23.11.05 10:00)
> Подскажите, как можно заблокировать повторный запуск программы.

См. статью Ю.Зотова:
http://delphikingdom.ru/asp/viewitem.asp?catalogid=903
(если я правильно понял вопрос)


Джо   (2005-11-23 10:04:00) [11]


>  [1] Reindeer Moss Eater ©   (23.11.05 10:00)
> Удалить её

Не, тогда и первого запуска не произведешь :))


Reindeer Moss Eater   (2005-11-23 10:00:00) [12]

Удалить её


Наверх

Титульная страница Поиск, карта сайта Написать письмо