国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

c#程序刪除自身代碼示例分享

2020-01-24 02:45:42
字體:
來源:轉載
供稿:網友

在.NET程序中,因為運行中的程序是受系統保護的,不能自己刪除自身的,所以自刪除的思路:

在關閉本程序之前啟動新的進程打開另一個程序,調用這個程序來刪除原程序。然后再完成外部進程的銷毀。

方法一:程序中打開新的進程,刪掉程序后,再銷毀進程本身

流程:首先生成一個BAT文件,然后讓BAT執行刪除動作,就是:
1、生成刪除的BAT
2、運行BAT
3、快速退出
4、BAT開始刪除EXE
5、BAT刪除BAT

復制代碼 代碼如下:

private static void DeleteItself()
{
string vBatFile = Path.GetDirectoryName(Application.ExecutablePath) + "http://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);

方法二:程序中打開新的進程,調用cmd命令,刪掉程序即可。

復制代碼 代碼如下:

private static void DeleteItselfByCMD()
{
ProcessStartInfo psi = new ProcessStartInfo("cmd.exe", "/C ping 1.1.1.1 -n 1 -w 1000 > Nul & Del " + Application.ExecutablePath);
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.CreateNoWindow = true;
Process.Start(psi);
Application.Exit();
}

下面解釋命令的意思:

cmd /c 調用命令窗口執行dos指令
ping 1.1.1.1 -n 1 -w 1000 > Nul 利用 ping命令的

主站蜘蛛池模板: 团风县| 东阿县| 涟水县| 龙南县| 池州市| 安徽省| 海原县| 台北市| 白沙| 玛纳斯县| 珲春市| 公安县| 岗巴县| 齐河县| 综艺| 云梦县| 元江| 栾川县| 韩城市| 东乡| 奉化市| 高安市| 天门市| 苍南县| 成安县| 武清区| 刚察县| 达州市| 永城市| 清苑县| 庆城县| 来凤县| 平安县| 宁津县| 慈利县| 岳阳市| 上犹县| 仙居县| 抚宁县| 安宁市| 南溪县|