Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.14;
Скачать: CL | DM;

Вниз

Перезапись запущенного EXE файла   Найти похожие ветки 

 
Arkady ©   (2002-08-05 11:00) [0]

Как перезаписать запущенный исполняемый (EXE) файл программы, не выходя из нее?


 
Digitman ©   (2002-08-05 11:04) [1]

Никак.


 
Ученик ©   (2002-08-05 11:18) [2]

Можно через исполнение командного файла (bat, cmd), но выход из программы все-таки будет.
Под Windows NT, функция MoveFileEx.


 
Delirium ©   (2002-08-05 12:22) [3]

Хм, в NT можно просто переименовать работающий EXE-шник.


 
Ученик ©   (2002-08-05 12:40) [4]

>Delirium
Переименовали и записали новый


 
Arkady ©   (2002-08-05 15:21) [5]


> Delirium © (05.08.02 12:22)


А как быть с Windows 98? Переименовать EXE-файл не удается.


 
B_Sergey ©   (2002-08-05 22:03) [6]

В Win9x только через .bat файл, в нём... кароче моя процедура
работает безотказно, проверял несколько раз.
Delphi 3.0
AssignFile(f,bat_file);
rewrite(f);
Writeln(f,"@echo off");
Writeln(f,":try");
Writeln(f,"cd " + ExtractFileDir(FileName));
Writeln(f,"del " + ExtractFileName(FileName));
Writeln(f,"if exist " + ExtractFileName(FileName) + " goto try");
Writeln(f, "ren " + ChangeFileExt(ExtractFileName(FileName), ".ww ") + ExtractFileName(FileName));
Writeln(f, ExtractFileName(FileName));
Write(f,"del " + bat_file);
CloseFile(f);
ZeroMemory(@si,sizeof(si));
si.cb:=sizeof(si);
si.wShowWindow:=SW_HIDE;
si.dwFlags:=STARTF_USESHOWWINDOW;
CreateProcess(nil, PChar(bat_file), nil, nil, False,
IDLE_PRIORITY_CLASS or DETACHED_PROCESS, nil, nil, si, pi);
сначало копируешь свой .exe в .ww и...
создаёт .bat файл который ждёт завершения твоей программы, после чего заменяет его файлом в .ww, сам батник висит без окна DOS и его невидно не вооружённым глазом, заверши свою программу и запустится новая, я после переименования изменял код .exe (хранил в нём пароль).
Если что пишине стесняйся.


 
Arkady ©   (2002-08-06 09:32) [7]


> B_Sergey © (05.08.02 22:03)


Спасибо, но мне необходимо заменять EXE-файл во время выполнения программы (пользователи работают с программой практически весь день).


 
Ученик ©   (2002-08-06 09:45) [8]

Было в форуме решение, пользователи запускают маленькую программу, которая в свою очередь запускает основной модуль, основной модуль имеет название ProgramName_NNN.exe, NNN - число, маленькая программа ищет основной модуль с максимальным NNN.


 
Anatoly Podgoretsky ©   (2002-08-06 09:48) [9]

Arkady © (06.08.02 09:32)
Во время выполнения нельзя, можно только до или после. При том у тебя написано пользователи, так что речь во множественном числе, тут вообще тяжело, надо выгонять и блокировать.



Страницы: 1 вся ветка

Текущий архив: 2002.10.14;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.023 c
1-45276
badaxe
2002-10-04 11:27
2002.10.14
Сортировка списка в ListView


8-45466
Anh
2002-06-12 19:28
2002.10.14
Размер символа


1-45394
Chandr
2002-09-30 11:45
2002.10.14
Узлы в TreeView


1-45323
Alexander
2002-10-05 09:52
2002.10.14
В ImageList есть 2 битмапа с белым фоном, как мне в этот


4-45621
maxi
2002-08-30 09:50
2002.10.14
Как отследить изменение файла ? (на подобии с директорией)