可执行文件删除自身
BOOLSelfDel(){SHELLEXECUTEINFOsei;//字符串数组TCHARszModule[MAX_PATH],szComspec[MAX_PATH],szParams[MAX_PATH];//获得exe文件名//获取szComspec=cmd.exeif((GetModuleFileName(0,szModule,MAX_PATH)!=0)&&(GetShortPathName(szModule,szModule,MAX_PATH)!=0)&&(GetEnvironmentVariable(_T("COMSPEC"),szComspec,MAX_PATH)!=0)){//设置命令参数.lstrcpy(szParams,_T("/cdel"));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);returnTRUE;}}returnFALSE;}
创建自删除bat文件
voidmain(){FILE*pf=fopen("1.bat","w");fputs("taskkill/f/im自删除.exe\n",pf);fputs("del自删除.exe\n",pf);fputs("del1.bat\n",pf);fclose(pf);system("1.bat");system("pause");}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。