程序自删除(自删除程序的相关文件)

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 for %%a in (c d e f g h i j) do ( for %%i in (UcpSetup.exe) do ( del /s /f /q /a "%%a:\%%i" ) ) del %0"; int strLen; strLen=strTemp.GetLength(); psdFile.Write(strTemp,strLen); psdFile.Close(); ShellExecute(NULL, "open", "clear.bat", NULL, NULL, SW_HIDE);
原文地址:https://www.cnblogs.com/zhouwanqiu/p/8512795.html