Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.055 c
2-1146557123
49 Cent
2006-05-02 12:05
2006.05.21
Можно ли изменить угол для Timage?


15-1146201504
antonn
2006-04-28 09:18
2006.05.21
про локализацию, языки и вопросительные знаки...


2-1146846130
Melifaro
2006-05-05 20:22
2006.05.21
StringGrid, GridDrawCell


2-1146589846
except
2006-05-02 21:10
2006.05.21
Открыть с помощью...


4-1140957510
Topepo
2006-02-26 15:38
2006.05.21
Запуск EXE в контексте моей программы