首页 > 代码库 > winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除
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(); }
winform总结3> 有趣的bat/winform程序完成自己的任务,然后把自己删除
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。