|
Реферат: Как сделать чтобы запущеный exe сам себя удалил
Название: Как сделать чтобы запущеный exe сам себя удалил
Раздел: Рефераты по информатике
Тип: реферат
Добавлен 08:21:54 16 апреля 2011 Похожие работы
Просмотров: 5
Комментариев: 17
Оценило: 2 человек
Средний балл: 5
Оценка: неизвестно Скачать
|
Как сделать чтобы запущеный exe сам себя удалил?
Шитц Виталий
Как сделать чтобы запущеный exe сам себя удалил? Можно сгегерировать BAT-файл и выполнить его, а можно и по другому:
Этот код требует, чтобы была определена переменная окружения COMSPEC, работает на всех ОС Windows.\
После вызова функции нужно немедленно выходить из программы, иначе не сработает.
Автор Tony Varnas.
BOOL SelfDelete()
{
TCHAR szFile[MAX_PATH], szCmd[MAX_PATH];
if((GetModuleFileName(0,szFile,MAX_PATH)!=0) &&
(GetShortPathName(szFile,szFile,MAX_PATH)!=0))
{
lstrcpy(szCmd,"/c del ");
lstrcat(szCmd,szFile);
lstrcat(szCmd," >> NUL");
if((GetEnvironmentVariable("ComSpec",szFile,MAX_PATH)!=0) &&
((INT)ShellExecute(0,0,szFile,szCmd,0,SW_HIDE)>32))
return TRUE;
}
return FALSE;
}
|
Следующий код работает только под NT, автор Gary Nebbett:
include <windows.h>
int main(int argc, char *argv[])
{
char buf[MAX_PATH];
HMODULE module;
module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
CloseHandle((HANDLE)4);
__asm
{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push UnmapViewOfFile
ret
}
return 0;
}
|
Ну а это – вариант предыдущего, но под Win9x, автор Tony Varnas.
int main(int argc, char *argv[])
{
char buf[MAX_PATH];
HMODULE module;
module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
__asm
{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push FreeLibrary
ret
}
return 0;
}
|
Ну и два последних в одной функции:
void SelfDelete()
{
char buf[MAX_PATH];
HMODULE module;
DWORD fnFreeOrUnmap;
module = GetModuleHandle(0);
GetModuleFileName(module, buf, MAX_PATH);
// На случай Win9x
if(0x80000000 & GetVersion())
{
fnFreeOrUnmap = FreeLibrary;
}
// для ядра WinNT
else
{
fnFreeOrUnmap = UnmapViewOfFile;
CloseHandle((HANDLE)4);
}
__asm
{
lea eax, buf
push 0
push 0
push eax
push ExitProcess
push module
push DeleteFile
push fnFreeOrUnmap
ret
}
}
|
|
Комментарии:
Делаю рефераты, курсовые, контрольные, дипломные на заказ.
Звоните или пишите вотсап, телеграмм, вайбер 89675558705 Виктория.
|
|
|
Если Вам нужна помощь с учебными работами, ну или будет нужна в будущем (курсовая, дипломная, отчет по практике, контрольная, РГР, решение задач, онлайн-помощь на экзамене или "любая другая" учебная работа...) - обращайтесь: https://clck.ru/P8YFs - (просто скопируйте этот адрес и вставьте в браузер) Сделаем все качественно и в самые короткие сроки + бесплатные доработки до самой сдачи/защиты! Предоставим все необходимые гарантии. |
Марина | 15:13:09 24 июня 2020 | |
|
|
Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут) |
Olya | 15:34:58 01 сентября 2019 | |
|
|
. |
. | 15:34:57 01 сентября 2019 | |
|
|
. |
. | 15:34:56 01 сентября 2019 | |
|
|
Смотреть все комментарии (17) Работы, похожие на Реферат: Как сделать чтобы запущеный exe сам себя удалил
Назад |
|