zoukankan      html  css  js  c++  java
  • winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除

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

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

            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();
            }
  • 相关阅读:
    遍历路径下的所有文件
    房间安排(题目168)
    创建BitMap
    字母统计(241)
    DataTable的Select方法
    ArcEngine中Feature对象的Shape属性和ShapeCopy属性
    C# 轻松获取路径中文件名、目录、扩展名等
    TreeList获取节点中的值
    【算法】LeetCode算法题-Two Sum
    JSP(一):初识JSP
  • 原文地址:https://www.cnblogs.com/zzfstudy/p/6254599.html
Copyright © 2011-2022 走看看