Вниз
Скачать: 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.01 c
3-45227
KAA
2002-09-23 20:11
2002.10.14
2000 Кто вызвал процедуру?


14-45500
asderg
2002-09-14 19:20
2002.10.14
Господа, (возможно коллеги) :)) неужели...


6-45492
BlackSun
2002-08-12 12:57
2002.10.14
Отправка данных из ServerSocket


4-45629
Delphi 5.01
2002-08-30 13:50
2002.10.14
Jpeg to Bmp


4-45617
Rasa
2002-08-29 23:48
2002.10.14
Меню




   Наверх