码迷,mamicode.com
首页 > 其他好文 > 详细

可执行文件删除自身

时间:2018-05-03 19:39:06      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:可执行文件删除自身

BOOL SelfDel() { SHELLEXECUTEINFO sei; TCHAR szModule[MAX_PATH], szComspec[MAX_PATH], szParams[MAX_PATH];//字符串数组   //获得exe文件名.   if ((GetModuleFileName(0, szModule, MAX_PATH) != 0) && (GetShortPathName(szModule, szModule, MAX_PATH) != 0) && (GetEnvironmentVariable(_T("COMSPEC"), szComspec, MAX_PATH) != 0))//获取szComspec=cmd.exe   { // 设置命令参数.   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;//C:\Windows\system32\cmd.exe   sei.lpParameters = szParams;//  /c del E:\adb\datasafe\Debug\datasafe.exe > nul   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; }


可执行文件删除自身

标签:可执行文件删除自身

原文地址:http://blog.51cto.com/9233403/2112263

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!