![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
перезапуск программы
Alexandr © (2006-04-13 11:05:00)А как делается чтоб из программы нажать кнопку, и программа закрылась, выполнились какие-то действия (например обновился экзешник из шары) и опять программа запустилась сама?
Поделитесь кодом, или скажите где глянуть
0bsid (2006-04-13 11:41:00) [1]
> Alexandr © (13.04.06 11:14) [2]
> так, а как разрешить противоречие, что на момент запуска
> батника, программа должна быть уже закрыта?
> Т.е. вот в коде запустили батник, и надо успеть самозакрыться,
> чтоб батник не споткнулся на том, что программа еще не
> закрыта.
запуск bat, сразу halt, а в батнике цикл на удаление своей программы
батник генерируй по разному, если нужно обратиться к ехе файлу - то делай цикл на успешное удаление, если не нужно - просто копируй поверх что надо обновить. bat удаляется сразу же после запуска твоей проги
я делал так
хотя идея с dll мне в голову не пришла, в следующий раз попробую
Сергей М. (2006-04-13 11:24:00) [2]Самое простое - реализовать некую MyUpdate.DLL, которая будет заниматься обновлениями.
Перед завершением твоя программа выполняет ком.строку вида :
rundll32 MyUpdate.DLL SomeUpdateProcName, PID, параметры_обновления
где
SomeUpdateProcName - имя некоей экспортируемой процедуры в составе этой DLL, занимающаяся обновлениями;
PID - идентификатор текущего процесса (процесса приложения, исп.файл которого требуется обновить) в текстовом виде
параметры_обновления - один или более (через запятую) текстовых параметров, которые получит вызываемая процедура SomeUpdateProcName, и которые указывают, что ей откуда взять, куда положить, что стереть/переименовать и т.д. и т.п.
Процедура SomeUpdateProcName при этом должна иметь прототип вида:
procedure SomeUpdateProcName(PID: PChar; Param1 [,Param2, Param3, ...]: PChar); stdcall;
Как только SomeUpdateProcName будет вызвана и получит управление, она ожидает завершение процесса, PID которого передан ей 1-м параметром, и выполняет предусмотренные действия по обновлению с учетом параметров, следующих за PID.
Anatoly Podgoretsky (2006-04-13 11:17:00) [3]Противоречия нет, на момент запуска программа не должна быть закрыта.
Остальное в справочнике по командам ДОС
Alexandr (2006-04-13 11:14:00) [4]так, а как разрешить противоречие, что на момент запуска батника, программа должна быть уже закрыта?
Т.е. вот в коде запустили батник, и надо успеть самозакрыться, чтоб батник не споткнулся на том, что программа еще не закрыта.
0bsid (2006-04-13 11:11:00) [5]проще всего при помощи генерации .bat файла