• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#程序删除自身代码示例分享

c#程序删除自身代码示例分享

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#程序示例,c#示例,微信小程序示例代码,小程序示例代码,java示例程序等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在.NET程序中,因为运行中的程序是受系统保护的,不能自己删除自身的,所以自删除的思路:

在关闭本程序之前启动新的进程打开另一个程序,调用这个程序来删除原程序。然后再完成外部进程的销毁。

方法一:程序中打开新的进程,删掉程序后,再销毁进程本身

流程:首先生成一个BAT文件,然后让BAT执行删除动作,就是:
1、生成删除的BAT
2、运行BAT
3、快速退出
4、BAT开始删除EXE
5、BAT删除BAT

//************ 执行批处理
WinExec(vBatFile, 0);
//************ 结束退出
Application.Exit();
}

[System.Runtime.InteropServices.DllImport("kernel32.dll")]
public static extern uint WinExec(string lpCmdLine, uint uCmdShow);
</div>

方法二:程序中打开新的进程,调用cmd命令,删掉程序即可。

下面解释命令的意思:

cmd /c 调用命令窗口执行dos指令
ping 1.1.1.1 -n 1 -w 1000 > Nul 利用 ping命令的 –w 参数指定延时1秒执行
& 连接下一个命令(用于一行执行多个命令)
Del <Application.ExecutablePath> 删除可执行文件

方法一:使用bat文件删除程序+自身,但其有临时bat文件生成。

方法二:利用某些dos命令的延时效果,在程序退出之后自动删除程序自身思路非常巧妙。也避免了bat方式,循环删除的问题。当然这种方法从本质上应该和方法一差不多。

突然想到“伴随进程”,也就是一个程序产生两个进程,定时检测另一个进程信号,如果其中一个进程被结束了,另一个进程就立刻重新启动被结束的进程,实现程序无法异常结束(特别是Windows结束任务)的效果!

  对于这种伴随进程(一个主要工作进程,一个伴随进程)结束的办法:快速结束两个进程,当然如果两个进程的检测定时足够短,这种方法就不一定有效了。但可以用另一个假的伴随进程来处理而达到结束两个进程的目的。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • c#中合并excel表格的方法示例
  • C#裁剪,缩放,清晰度,水印处理操作示例
  • C#获取HTML文本的第一张图片与截取内容摘要示例代码
  • C#实现创建桌面快捷方式与添加网页到收藏夹的示例
  • C#实现的微信网页授权操作逻辑封装示例
  • C#代码实现短信验证码接口示例
  • C#信号量用法简单示例
  • C#实现冒泡排序算法的代码示例
  • C#微信公众号与订阅号接口开发示例代码
  • C#中使用基数排序算法对字符串进行排序的示例

相关文章

  • 2017-05-28C#+MO实现一些渲染功能
  • 2017-05-28C#键盘鼠标钩子实例
  • 2017-05-28c#获得目标服务器中所有数据库名、表名、列名的实现代码
  • 2017-05-28C# Socket连接请求超时机制实现代码分享
  • 2017-05-28C#执行DOS命令的方法
  • 2017-05-28C#启动进程的几种常用方法
  • 2017-05-28C#汉字转拼音实例(支持多音字)
  • 2017-05-28关于async和await的一些误区实例详解
  • 2017-05-28WinForm实现为TextBox设置水印文字功能
  • 2017-05-28为何Linq的Distinct实在是不给力

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#实现装箱与拆箱操作简单实例
    • WinForm中DataGridView添加,删除,修改操作具体方法
    • C#约瑟夫问题解决方法
    • C#中实现任意List的全组合算法代码
    • C#实现计算年龄的简单方法汇总
    • C#提高编程能力的50个要点总结
    • 轻松学习C#的哈希表
    • c# 通过经纬度查询 具体的地址和区域名称
    • C#往线程里传递参数的方法小结
    • DevExpress实现GridControl列头绘制Checkbox的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有