Текущий архив: 2006.05.21;
Скачать: CL | DM;
Вниз
перезапуск программы Найти похожие ветки
← →
Alexandr © (2006-04-13 11:05) [0]А как делается чтоб из программы нажать кнопку, и программа закрылась, выполнились какие-то действия (например обновился экзешник из шары) и опять программа запустилась сама?
Поделитесь кодом, или скажите где глянуть
← →
0bsid © (2006-04-13 11:11) [1]проще всего при помощи генерации .bat файла
← →
Alexandr © (2006-04-13 11:14) [2]так, а как разрешить противоречие, что на момент запуска батника, программа должна быть уже закрыта?
Т.е. вот в коде запустили батник, и надо успеть самозакрыться, чтоб батник не споткнулся на том, что программа еще не закрыта.
← →
Anatoly Podgoretsky © (2006-04-13 11:17) [3]Противоречия нет, на момент запуска программа не должна быть закрыта.
Остальное в справочнике по командам ДОС
← →
Сергей М. © (2006-04-13 11:24) [4]Самое простое - реализовать некую 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.
← →
0bsid © (2006-04-13 11:41) [5]
> Alexandr © (13.04.06 11:14) [2]
> так, а как разрешить противоречие, что на момент запуска
> батника, программа должна быть уже закрыта?
> Т.е. вот в коде запустили батник, и надо успеть самозакрыться,
> чтоб батник не споткнулся на том, что программа еще не
> закрыта.
запуск bat, сразу halt, а в батнике цикл на удаление своей программы
батник генерируй по разному, если нужно обратиться к ехе файлу - то делай цикл на успешное удаление, если не нужно - просто копируй поверх что надо обновить. bat удаляется сразу же после запуска твоей проги
я делал так
хотя идея с dll мне в голову не пришла, в следующий раз попробую
Страницы: 1 вся ветка
Текущий архив: 2006.05.21;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.01 c