C# 應用程式自刪除
阿新 • • 發佈:2019-01-07
示例應用:ClearDir.exe 可用於清理其他檔案 和 自刪除
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClearDir { public class AutoDelet { /// <summary> /// 應用自刪除 /// </summary> public static void deletItself() { try { string curExe = System.Windows.Forms.Application.ExecutablePath; string tmpName = AppDomain.CurrentDomain.BaseDirectory + "$"; string name1 = "$"; while (File.Exists(tmpName)) { tmpName = tmpName + "$"; name1 = name1 + "$"; } File.Move(curExe, tmpName); // 重新命名當前檔案 string vbsName = AppDomain.CurrentDomain.BaseDirectory + "$"; string name2 = "$"; while (File.Exists(vbsName + ".vbs")) { vbsName = vbsName + "$"; name2 = name2 + "$"; } //Set ws = CreateObject("Wscript.Shell") //WScript.sleep 5000 //ws.run "cmd /c ?> $",vbhide //ws.run "cmd /c del $",vbhide //ws.run "cmd /c ?> $.vbs",vbhide //ws.run "cmd /c del $.vbs",vbhide StringBuilder Str = new StringBuilder(); Str.AppendLine("Set ws = CreateObject(\"Wscript.Shell\")"); Str.AppendLine("WScript.sleep 4000"); Str.AppendLine("ws.run \"cmd /c ?> " + name1 + "\",vbhide"); Str.AppendLine("ws.run \"cmd /c del " + name1 + "\",vbhide"); Str.AppendLine("ws.run \"cmd /c ?> " + name2 + ".vbs\",vbhide"); Str.AppendLine("ws.run \"cmd /c del " + name2 + ".vbs\",vbhide"); string data = Str.ToString(); SaveFile(data, vbsName + ".vbs"); System.Diagnostics.Process.Start(vbsName + ".vbs"); System.Environment.Exit(0); //退出 } catch(Exception){} } /// <summary> /// 儲存資料data到檔案處理過程,返回值為儲存的檔名 /// </summary> private static String SaveFile(String data, String filePath) { System.IO.StreamWriter file1 = new System.IO.StreamWriter(filePath, false, Encoding.Default); //檔案已覆蓋方式新增內容 file1.Write(data); //儲存資料到檔案 file1.Close(); //關閉檔案 file1.Dispose(); //釋放物件 return filePath; } } }