Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.01.23;
Скачать: CL | DM;

Вниз

Самоперезапуск программы   Найти похожие ветки 

 
Oxy ©   (2002-12-07 15:12) [0]

Как сделать самоперезапуск программы? То есть что бы она закрылась и запустила сама себя. При этом нельзя допустить одновременной работы двух копий программы.


 
Anatoly Podgoretsky ©   (2002-12-07 15:28) [1]

И как ты это представляешь, после того как она закрылась святой дух это будет делать?
Делай с помощью посредника, запусти третью, закройся, она запустит вторую и тоже закроется.


 
PD   (2002-12-07 16:08) [2]

В событии OnDestroy главного окна напиши WinExec (PChar (Application.ExeName), SW_SHOW).
Не забудь постваить какой-нибудь флаг, а то не выключишь


 
Anatoly Podgoretsky ©   (2002-12-07 16:11) [3]

Не выполняется условие "одновременной работы". будут какое то время две копии.


 
Oxy ©   (2002-12-07 16:55) [4]

И как ты это представляешь, после того как она закрылась святой дух это будет делать? Делай с помощью посредника, запусти третью, закройся, она запустит вторую и тоже закроется.

Дык, я потому и спрашиваю, что не знаю какой "святой дух" здесь надо призвать. Может есть в виндах какая то такая возможность? Ведь некоторые программы так делают. Например Quake3 перезапускается при смене мода.
О посреднике я и сам догадался. Оно теперь так и работает.

Мысли вслух: a может как то через батник это можно сделать?


 
LSW ©   (2002-12-07 22:47) [5]

Создай мьютекс, и при выключении своей проги запускай ее копию которая при старте будет его проверять и если свободно то прога запустится. Делай только таймаут побольше. Сам так не делал, но теоретически возможно.


 
Anatoly Podgoretsky ©   (2002-12-07 23:18) [6]

Через бат и делай, посредником будет командный процессор, получится цепочка: 1, 1+3, 3, 3+2, 2
Где три это бат


 
Sha ©   (2002-12-08 08:50) [7]

Программа при старте должна проверять, есть ли второй экземляр.
Если есть, спрашивает у него, что делать дальше. И далее по обстоятельствам.
Такую программу можно запускать хоть сто раз.


 
Oxy ©   (2002-12-08 20:10) [8]

Ладно, спасибо за советы.

Жаль что нет какого то встроенного механизма...


 
Devid ©   (2002-12-08 20:31) [9]

Не надо горевать есть один проверенный мной способ

var Loo : string;

assignfile(любой файл, "c:\auto.bat");
rewrite(любой файл);
loo := application.exename;
writeln(любой файл, loo);
closefile(любой файл);
winexec("c:\auto.bat", sw_show);
release;//освобождает память занятую программой
application.terminate;


 
Oxy ©   (2002-12-09 00:42) [10]

Thanx...



Страницы: 1 вся ветка

Текущий архив: 2003.01.23;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
1-72383
Mentos
2003-01-13 13:31
2003.01.23
линк между RTF-файлом и Дельфийской формой


1-72342
kroj
2003-01-12 12:50
2003.01.23
Проблема:телефонный Справочник, Как связать ComboBox (3 шт.)


3-72120
Sirus
2002-12-31 07:19
2003.01.23
Как программно переименовать алиас BDE???


3-72088
Назаров Евгений
2002-12-28 23:21
2003.01.23
Удалённый доступ к БД


1-72170
Vladimir
2003-01-11 10:40
2003.01.23
Интерфейс