前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

作者头像
FreeTimeWorker
发布2020-08-31 13:32:08
7090
发布2020-08-31 13:32:08
举报
文章被收录于专栏:C#开发点点滴滴

在winform的开发过程中往往会有这样的应用场景,执行完成某任务之后,程序需要把本身删除掉。比如卸载。分享一个比较简单实现。

思路就是利用批处理,关闭文件后执行bat,bat执行删除主文件,然后删除自己

代码语言:javascript
复制
        static void Main(string[] args)
        {
            Console.Write("按任意键删除程序本身");
            Console.ReadKey();
            Thread t = new Thread(() =>
            {
                try
                {
                    /*
                     调试的时候因为DeleteOwn.vshost.exe文件一直被vs占用所以删除会失效,直接执行就可以了
                     */
                    using (FileStream fs = new FileStream("del.bat", FileMode.Create))
                    {
                        using (StreamWriter sw = new StreamWriter(fs, Encoding.ASCII))
                        {
                            sw.WriteLine("@echo off");
                            sw.WriteLine("ping -n 3 127.1 >nul");//休眠三秒后执行,确保程序已经退出
                            sw.WriteLine(string.Concat("del", " \"", AppDomain.CurrentDomain.FriendlyName, "\""));//删除主程序,引号是保证文件名中包含空格也可以删除,FriendlyName修改名称后可以删除
                            sw.WriteLine("del %0");//删除自己
                        }
                    }
                    Process proc = new Process();
                    proc.StartInfo.FileName = "del.bat";
                    proc.StartInfo.UseShellExecute = false;//不显示命令行
                    proc.StartInfo.CreateNoWindow = false;//不在窗体展示
                    proc.Start();
                }
                catch { }
            });
            t.Start();
        }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档