c++實現一個自殺程序
如何實現一個程序,讓他運行後刪除自己?這是個有趣的問題,在網上找到了一個work的方法:
char szCommandLine[MAX_PATH + 10];
//設置本進程為實時執行,快速退出。
SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_TIME_CRITICAL);
//通知資源管理器不顯示本程序,當然如果程序沒有真正的刪除,刷新資源管理器後仍會顯示出來的。
SHChangeNotify(SHCNE_DELETE, SHCNF_PATH, _pgmptr, NULL);
//調用cmd傳入參數以刪除自己
sprintf(szCommandLine, "/c del /q %s", _pgmptr);
ShellExecute(NULL, "open", "cmd.exe", szCommandLine, NULL, SW_HIDE);
exit(0)
這裏的關鍵在於兩個,一個是將當前的進程優先級設為實時,保證他在啟動下麵的指令前先完成退出,第二個事利用cmd,exe執行一個shell指令刪除當前文件
最後更新:2017-04-03 16:48:47