C# 应用程序自删除

来源:互联网 发布:凤凰金融 以大数据为 编辑:程序博客网 时间:2024/06/05 18:36

示例应用: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;        }    }}


阅读全文
0 0
原创粉丝点击