Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.01.23;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
1-72271
Alek_1
2003-01-15 00:53
2003.01.23
Jpg и Image


1-72179
Laist
2003-01-13 18:52
2003.01.23
массив.


14-72466
Fantasist.
2003-01-05 07:00
2003.01.23
Хочу программировать на VCL без Delphi


3-72078
Mic_2000
2002-12-28 10:40
2003.01.23
Как организовать ввод данных в DBGrid через IBQuery?


1-72207
Beginer1
2003-01-14 10:42
2003.01.23
как сделать быструю сортировку строк справо на налево





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский