Для этого используем пакетный сценарий, который он создает для удаления исполняемого файла, а затем удаляет себя сам.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
using System.Diagnostics; using System.IO; static private void DeleteSelf() { //Use this line if your running from console //string pa = Process.GetCurrentProcess().MainModule.FileName; //Use this line if your running from Windows Form string pa = Application.StartupPath; string bf = "@echo off" + Environment.NewLine + ":dele" + Environment.NewLine + "del \"" + pa + "\"" + Environment.NewLine + "if Exist \"" + pa + "\" GOTO dele" + Environment.NewLine + "del %0"; //string filename = RandomString(RandomNumber(5, 15)) + ".bat"; string filename = Path.GetRandomFileName() + ".bat"; StreamWriter file = new StreamWriter(Environment.GetEnvironmentVariable("TMP") + filename); file.Write(bf); file.Close(); Process proc = new Process(); proc.StartInfo.FileName = Environment.GetEnvironmentVariable("TMP") + filename; proc.StartInfo.CreateNoWindow = true; proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; proc.StartInfo.UseShellExecute = true; proc.Start(); proc.PriorityClass = ProcessPriorityClass.Normal; } |