c# winfrom程序退出后删除程序自身
在.NET程序中,因为运行中的程序是受系统保护的,不能自己删除自身的,所以自删除的思路是:在关闭本程序之前启动新的进程打开另一个程序,调用这个程序来删除原程序。然后再完成外部进程的销毁。
代码如下:
private void 退出ToolStripMenuItem_Click(object sender, EventArgs e)
{
DeleteItself();
}
private static void DeleteItself()
{
string vBatFile = Path.GetDirectoryName(Application.ExecutablePath) + "\\DeleteItself.bat";
using (StreamWriter vStreamWriter = new StreamWriter(vBatFile, false, Encoding.Default))
{
vStreamWriter.Write(string.Format(
":del\r\n" +
" del \"{0}\"\r\n" +
"if exist \"{0}\" goto del\r\n" +
"del %0\r\n", Application.ExecutablePath));
}
//************ 执行批处理
WinExec(vBatFile, 0);
//************ 结束退出
Application.Exit();
}
[System.Runtime.InteropServices.DllImport("kernel32.dll")]
public static extern uint WinExec(string lpCmdLine, uint uCmdShow);
可以在退出事件中调用DeleteItself();方法。
评论区
请写下您的评论...
猜你喜欢
blog
二叉树删除节点 c++
数据结构与算法
3280
二叉树删除节点c++先看一个简单的树图删除节点是分以下几种情况:1.待删节点为叶子节点:此种情况下直接删除叶子节点即可2.待删节点只有左子树,或只有右子树,那么将左子树或右子树的根节点替换该节点即可
linux系统
3607
ctrl+c和ctrl+z都是中断命令,但是他们的作用却不一样.ctrl+c强制中断程序ctrl+z的是将任务中断,挂起的状态,ctrl+c是强制中断程序的执行。ctrl+z的是将任务中断.但是此任
其他
3719
过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制
blog
链式队列的基本操作 c++
数据结构与算法
2385
链式队列的基本操作c++classnode{public:intdata;node*next;node*prev;};#include"node.h"classqueue{private:node
blog
简单 单链表的增删改查 c++描述
数据结构与算法
2719
简单单链表的增删改查c++描述classnode{public:intdata;node*next;};#include"node.h"usingnamespacestd;classstack
ofc
c#中自定义委托
weblog
2614
代码:namespaceConsoleApplication3{//声明自定义委托(委托方法的返回值为int,有两个int类型的形参)publicdelegateintdelegateTest
blog
简单 双向链表得增删改查 c++描述
数据结构与算法
2168
简单双向链表得增删改查c++描述classnode{public:intdata;node*next;node*prev;};#include"node.h"classrelink
blog
链式栈的出栈入栈操作c++描述
数据结构与算法
2975
链式栈的出栈入栈操作c++描述基于双向链表//节点classnode{public:intdata;node*next;node*prev;};//双向链表#include"node.h
最新发表
归档
2018-11
12
2018-12
33
2019-01
28
2019-02
28
2019-03
32
2019-04
27
2019-05
33
2019-06
6
2019-07
12
2019-08
12
2019-09
21
2019-10
8
2019-11
15
2019-12
25
2020-01
9
2020-02
5
2020-03
16
2020-04
4
2020-06
1
2020-07
7
2020-08
13
2020-09
9
2020-10
5
2020-12
3
2021-01
1
2021-02
5
2021-03
7
2021-04
4
2021-05
4
2021-06
1
2021-07
7
2021-08
2
2021-09
8
2021-10
9
2021-11
16
2021-12
14
2022-01
7
2022-05
1
2022-08
3
2022-09
2
2022-10
2
2022-12
5
2023-01
3
2023-02
1
2023-03
4
2023-04
2
2023-06
3
2023-07
4
2023-08
1
2023-10
1
2024-02
1
2024-03
1
2024-04
1
标签
算法基础
linux
前端
c++
数据结构
框架
数据库
计算机基础
储备知识
java基础
ASM
其他
深入理解java虚拟机
nginx
git
消息中间件
搜索
maven
redis
docker
dubbo
vue
导入导出
软件使用
idea插件
协议
无聊的知识
jenkins
springboot
mqtt协议
keepalived
minio
mysql
ensp
网络基础
xxl-job
rabbitmq
haproxy
srs
音视频
webrtc
javascript
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。