Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];

Вниз

Перезапись запущенного 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.009 c
14-45547
Shaman
2002-09-20 07:36
2002.10.14
Интересное предложение, но похоже на лохотрон


6-45480
Димон1
2002-08-13 10:17
2002.10.14
Windows98 Connected


14-45515
Malder
2002-09-15 14:38
2002.10.14
Кто что думает о легализации проституции


14-45572
iNew
2002-09-20 18:50
2002.10.14
Сообщение


4-45647
начинающий програмер
2002-09-01 16:29
2002.10.14
Изменение разрешения





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский