BOOL SelfDel()
{
SHELLEXECUTEINFO sei;
//字符串数组
TCHAR szModule[MAX_PATH], szComspec[MAX_PATH], szParams[MAX_PATH];
//获得exe文件名
//获取szComspec=cmd.exe
if ((GetModuleFileName(0, szModule, MAX_PATH) != 0) &&
(GetShortPathName(szModule, szModule, MAX_PATH) != 0) &&
(GetEnvironmentVariable(_T("COMSPEC"), szComspec, MAX_PATH) != 0))
{
// 设置命令参数.
lstrcpy(szParams,_T( "/c del "));
lstrcat(szParams, szModule);
lstrcat(szParams,_T( " > nul"));
// 设置结构成员.
sei.cbSize = sizeof(sei);
sei.hwnd = 0;
sei.lpVerb = _T("Open");
sei.lpFile = szComspec;
sei.lpParameters = szParams;
sei.lpDirectory = 0;
sei.nShow = SW_HIDE;
sei.fMask = SEE_MASK_NOCLOSEPROCESS;
// 执行shell命令.
if (ShellExecuteEx(&sei))
{
// 设置命令行进程的执行级别为空闲执行,使本程序有足够的时间从内存中退出.
SetPriorityClass(sei.hProcess, IDLE_PRIORITY_CLASS);
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
// 通知Windows资源浏览器,本程序文件已经被删除.
SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, szModule, 0);
return TRUE;
}
}
return FALSE;
}
创建自删除bat文件
void main()
{
FILE *pf = fopen("1.bat", "w");
fputs("taskkill /f /im 自删除.exe\n", pf);
fputs("del 自删除.exe\n", pf);
fputs("del 1.bat\n", pf);
fclose(pf);
system("1.bat");
system("pause");
}
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。