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

Вниз

Удаление программы из себя   Найти похожие ветки 

 
fishca ©   (2003-02-20 10:56) [0]

Рабочий примерчик удаления программы из себя:

procedure DeleteSelf;
var
module: HModule;
buf: array[0..MAX_PATH - 1] of char;
p: ULong;
hKrnl32: HModule;
pExitProcess,pDeleteFile,pFreeLibrary: pointer;
begin
module := GetModuleHandle(nil);
GetModuleFileName(module, buf, SizeOf(buf));
CloseHandle(THandle(4));
p := ULONG(module) + 1;
hKrnl32 := GetModuleHandle("kernel32");
pExitProcess := GetProcAddress(hKrnl32, "ExitProcess");
pDeleteFile := GetProcAddress(hKrnl32, "DeleteFileA");
pFreeLibrary := GetProcAddress(hKrnl32, "FreeLibrary");
asm
lea eax, buf
push 0
push 0
push eax
push pExitProcess
push p
push pDeleteFile
push pFreeLibrary
ret
end;
end;

...просто были мнения что удалить программу во время работы - просто нельзя.


 
Anatoly Podgoretsky ©   (2003-02-20 11:02) [1]

Это не рабочий пример, работает только на некотором подмножестве ОС


 
fishca ©   (2003-02-20 11:16) [2]

Конкретно под Windows98/2000 работает. Простым программерам в принципе и больше не надо. Под Unix можно тоже переписать, если у кого желание появится(ну это уже для продвинутых программеров).


 
fishca ©   (2003-02-20 11:20) [3]

Хотя для Unix это в другом форуме должно быть...



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

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

Наверх




Память: 0.47 MB
Время: 0.026 c
14-67469
Sheng
2003-04-02 21:51
2003.04.21
Сеть XP и 98


9-67068
Dev_c
2002-11-15 12:49
2003.04.21
Физика для авиасимулятора (КАК???)...


14-67438
Supreme 2
2003-04-03 22:27
2003.04.21
Опять чёрная полоса чтоли....??


1-67229
Hexxx
2003-04-10 23:31
2003.04.21
Тяжелый Record.


1-67261
kalliopiy
2003-04-11 12:54
2003.04.21
Какой использовать компонент?