Вниз
Скачать: CL | DM;

Удаление *.exe файла во время его работы   Найти похожие ветки 

 
Hawk ©   (2002-10-05 13:53) [0]

Народ вообще в win32 возможен сабж?
Тоесть чтобы программа сама себя удалила.

Зарание спасибо.


 
Карлсон ©   (2002-10-05 14:06) [1]

насколько я помню, во время выполнения программы ее удалить нельзя.
но можно создать ключ в реестре и при следующей загрузке прога будет удалена командой из реестра :)
или в реестре нужно создать ключ на запуск bat файла, где будет прописано, какую прогу удалить.


 
Hawk ©   (2002-10-05 14:09) [2]

насколько я знаю во время выполнения программы она полностью сидит в памяти а на сам .exe файл накладывается какой то атрибут чтобы нельзя было удалять... или я не прав? кто - знает помогите!


 
Pat ©   (2002-10-05 15:41) [3]

Для Win9x (не мое)

procedure DeleteSelf;
var hModule:THandle;
szModuleName:array[0..MAX_PATH] of char;
hKrnl32 : THandle;
pExitProcess, pDeleteFile, pFreeLibrary,pUnmapViewOfFile : pointer;
ExitCode:UINT;
begin
hModule:= GetModuleHandle(nil);

GetModuleFileName(hModule, szModuleName, sizeof(szModuleName));


hKrnl32 := GetModuleHandle ( "kernel32" );
pExitProcess := GetProcAddress ( hKrnl32, "ExitProcess" );
pDeleteFile := GetProcAddress ( hKrnl32, "DeleteFileA" );
pFreeLibrary := GetProcAddress ( hKrnl32, "FreeLibrary" );
pUnmapViewOfFile := GetProcAddress ( hKrnl32, "UnmapViewOfFile" );

ExitCode := system.ExitCode;

if($80000000 and GetVersion())<>0 then
// Win95, 98, Me
asm

lea eax, szModuleName
push ExitCode
push 0
push eax
push pExitProcess
push hModule
push pDeleteFile
push pFreeLibrary
ret
end
else
begin
CloseHandle(THANDLE(4));

asm
lea eax, szModuleName
push ExitCode
push 0
push eax
push pExitProcess
push hModule
push pDeleteFile
push pUnmapViewOfFile
ret
end
end
end;


Или можно через bat файл, но это не во время работы программы :-)) А результат тот же :)


 
Song ©   (2002-10-05 17:41) [4]

Делают bat файл в который записывают цикл удалять файл пока он не удалится.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
7-45603
Codec
2002-07-18 11:51
2002.10.14
Программное нажатие клавиш CTRL+ALT+DELETE


6-45482
Ksion
2002-07-26 21:14
2002.10.14
Как в ходе получения страницы с сервера изменить её содержимое.


4-45650
Xemax
2002-09-01 20:19
2002.10.14
Что такое system ?`


1-45342
Ryser
2002-10-05 16:53
2002.10.14
Экстренное завершение цикла


3-45199
Young Programmer
2002-09-23 04:01
2002.10.14
Delphi + ADO




   Наверх