Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.14;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.022 c
14-45557
SBProgrammer
2002-09-20 08:37
2002.10.14
Просят выполнить работу, сколько это может стоит? (опис. внутри)!


3-45204
DmitryMN
2002-09-21 13:11
2002.10.14
Логические типы даннх в InterBase


14-45518
DrAlban
2002-09-18 20:37
2002.10.14
Что такое полиморфизм в дельфи ?


3-45228
Natalie
2002-09-24 07:27
2002.10.14
как затащить рисунки в базу????


1-45266
Dim!S
2002-10-04 12:29
2002.10.14
ListBox, ComboBox и т.д.