标签:显示 窗体 stream 卸载 use writer dom exe art
在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程序完成自己的任务,然后把自己删除
标签:显示 窗体 stream 卸载 use writer dom exe art
原文地址:http://www.cnblogs.com/zzfstudy/p/6254599.html