• 本站域名:OceanCoder.cn 若您喜欢本站,请添加至收藏夹!
  • 网站少部分资源来源自网络,如有侵犯您的权益,请联系站长删除!
  • 本站所有文章,除特殊标明外,皆为本人原创,转载请注明出处,谢谢合作!
  • 本站所下载的资源,若无特殊说明,使用统一解压密码:oceancoder.cn
  • 本站已实现布局自适应,支持手机端、pad端访问,欢迎体验
  • 本站部分资源可通过微信公众号留言获取,欢迎体验

[C#进阶]程序删除自身代码

C# OceanCoder 2017-10-13 4180 次浏览 0个评论

在软件的升级程序中,新的安装包下载完成后,我们一般需要删除程序自身,以给用户更好的使用体验。我们可以通过动态创建批处理程序完成这一目的:

1.控制台程序代码

string vBatFile = Environment.CurrentDirectory + "\\DelSelf.bat";
            using (StreamWriter vStreamWriter = new StreamWriter(vBatFile, false, Encoding.Default))
            {
                vStreamWriter.Write(string.Format(
                   ":del\r\n" +
                    " del \"{0}\"\r\n" +
                    "if exist \"{0}\" goto del\r\n" + //此处已修改
                    "del %0\r\n", Environment.CurrentDirectory + "\\AutoRegSimple.exe"));
            }
            WinExec(vBatFile, 0);

2.WinForm程序代码

         string vBatFile = Path.GetDirectoryName(Application.ExecutablePath) + "\\delete.bat";
            using (StreamWriter vStreamWriter = new StreamWriter(vBatFile, false, Encoding.Default))
           {
                         vStreamWriter.Write(string.Format(
                          ":del\r\n" +
                           " del \"{0}\"\r\n" +
                           "if exist \"{0}\" goto del\r\n" + //此处已修改
                            "del %0\r\n", Application.ExecutablePath));
             }
             WinExec(vBatFile, 0);

其中WinExec代码如下:

        [DllImport("kernel32.dll")]
            public static extern uint WinExec(string lpCmdLine, uint uCmdShow);


已有 4180 位网友参与,快来吐槽:

发表评论