Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.06.2009, 21:56   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Перезапуск программы

В программе после изменений, нужно перезпустить программу (сначало закрыть,и снова запустить).
Делаю так:

Код:
var
   FullProgPath: PChar;
 begin
   FullProgPath := PChar(Application.ExeName);
  WinExec(FullProgPath, SW_SHOW); 
  Application.Terminate;
Но у меня программа защищена от запуска второй копии,и он блокирует перезапуск выдавая сообщение о том что программа уже работает,подскажите что можно сделать
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 23.06.2009, 22:21   #2
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Сделайте такой обработчик OnClose:

Код:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ShellExecute(0, 'open', 'run.bat', '', nil, SW_HIDE);
end;
Создайте в папке программы файл run.bat и напишите в нём:

Код:
@ImaVasheyProgrammi.exe
Прим. - "черное окошко" естественно не появляется.
BaronTreep вне форума Ответить с цитированием
Старый 23.06.2009, 22:38   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Я че то не совсем понял,у меня ни чего не изменилось,что я этим добьюсь?
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 23.06.2009, 23:11   #4
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

В OnClose вы запускает выполнение (скрытое) батника (рабатает cmd) и послее этого выша программа реально закрывается и мьютекс освобождается (или с помощью чего вы вторую копию смотрите). Тем временем батник (адм. средство windows) запускает вашу программу, т.к. её копии в памяти нет - она загружается.
BaronTreep вне форума Ответить с цитированием
Старый 23.06.2009, 23:16   #5
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Программа закрывается,но почему то сама не запускается,что не так?
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 23.06.2009, 23:32   #6
BaronTreep
Форумчанин
 
Регистрация: 29.05.2009
Сообщений: 320
По умолчанию

Вот набросал пример. Если все положить в одну папку и откомпилировать - будет работать.
Вложения
Тип файла: rar sample.rar (1.3 Кб, 80 просмотров)
BaronTreep вне форума Ответить с цитированием
Старый 23.06.2009, 23:34   #7
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Спасибо! буду пробовать
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 14.07.2011, 16:56   #8
mrDuke
 
Регистрация: 18.12.2007
Сообщений: 8
По умолчанию

Обновляю exe'шник. Все проходи нормально, только после перезапуска когда закрываешь прогу удаляется exe файл. Никак не пойму почему это происходит.
Код:
if not exist "D:\$$prog.tmp" goto exit
taskkill /F /IM "prog.exe"
:try
del "D:\prog.exe"
if exist "D:\prog.exe" goto try
ren "D:\$$prog.tmp" "prog.exe"
prog.exe
:exit
mrDuke вне форума Ответить с цитированием
Старый 14.07.2011, 17:27   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
del "D:\prog.exe"
if exist "D:\prog.exe" goto try
facepalm
Человек_Борща вне форума Ответить с цитированием
Старый 14.07.2011, 18:27   #10
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

1. Убей себя.
2. Если останешься жив - см. пункт 1...

PS: надо бы добавить в свою подпись... )
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}

Последний раз редактировалось Johnson; 14.07.2011 в 18:35.
Johnson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перезапуск DOS приложения по условию andrewua12 Фриланс 1 26.05.2009 00:02
Перезапуск DOS приложения по условию andrewua12 Операционные системы общие вопросы 2 25.05.2009 17:11
Запуск программы на выполнение из другой программы. ViNcHeStEr Паскаль, Turbo Pascal, PascalABC.NET 6 18.06.2008 14:33
программы koyot Фриланс 1 14.03.2008 13:10
Программы Simply-Art Свободное общение 4 18.09.2007 22:41