程序自删除(自删除程序的相关文件)
1、在程序中删除当前程序exe文件所在文件夹的相关文件
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS); SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL); SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, _pgmptr, NULL); char szCommandLine[MAX_PATH] = {0}; sprintf(szCommandLine, "/c ping 127.0.0.1 -n 1 && del /f/q \"%s\"", _pgmptr); ShellExecute(NULL, "open", "cmd.exe", szCommandLine, NULL, SW_HIDE); CFileFind finder; CString strPath="./*.*"; //*.*表示当前文件夹下的所有文件 BOOL bWorking=finder.FindFile(strPath); while(bWorking) { bWorking=finder.FindNextFile(); DeleteFile(finder.GetFilePath()); } finder.Close();
ExitProcess(0);
2、在本机的C、D、E盘等本地磁盘中查找并删除程序安装文件
CFile psdFile; psdFile.Open("clear.bat",CFile::modeCreate|CFile::modeReadWrite);
//程序名(UcpSetup.exe,abc.exe,123.exe) CString strTemp="@echo off\r\nfor %%a in (c d e f g h i j) do (\r\nfor %%i in (UcpSetup.exe) do (\r\ndel /s /f /q /a \"%%a:\\%%i\"\r\n)\r\n)\r\ndel %0"; int strLen; strLen=strTemp.GetLength(); psdFile.Write(strTemp,strLen); psdFile.Close(); ShellExecute(NULL, "open", "clear.bat", NULL, NULL, SW_HIDE);