• 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();
            }
  • 相关阅读:
    $.ajax()方法详解
    关于JDK动态代理和cglib动态代理
    关于eclipse maven引入第三方jar包后如何下载源代码
    关于oracle中table函数的使用
    ORA-00257:archiver error错误维护记录
    oracle学习笔记服务启动
    oracle学习笔记之用户管理-3
    oracle学习笔记之用户管理-2
    oracle学习笔记之用户管理-1
    github 手记
  • 原文地址:https://www.cnblogs.com/zzfstudy/p/6254599.html
Copyright © 2020-2023  润新知