C 刪除程式自身 總結

2021-06-20 15:47:20 字數 1486 閱讀 1152

偶然看到乙個可以自刪除的程式,於是了解下如何實現。然後整理如下:

思路:

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

在關閉本程式之前啟動新的程序開啟另乙個程式,呼叫這個程式來刪除原程式。然後再完成外部程序的銷毀。

操作:

方法一:程式中開啟新的程序,刪掉程式後,再銷毀程序本身

流程:首先生成乙個bat檔案,然後讓bat執行刪除動作,就是:

1、生成刪除的bat

2、執行bat

3、快速退出

4、bat開始刪除exe

5、bat刪除bat

///

///)【推薦】

/// private

static

void

deleteitself()

\"\r\n

" + "

if exist \"\" goto del\r\n

" + "

del %0\r\n

" }

//************ 執行批處理

winexec(vbatfile, 0

);

//************ 結束退出

}

[system.runtime.interopservices.dllimport("kernel32.dll")]

public static extern uint winexec(string lpcmdline, uint ucmdshow);

方法二:程式中開啟新的程序,呼叫cmd命令,刪掉程式即可。

///

///)

/// private

static

void

deleteitselfbycmd()

下面解釋命令的意思:

總結:

方法一:使用bat檔案刪除程式+自身,但其有臨時bat檔案生成。

方法二:利用某些dos命令的延時效果,在程式退出之後自動刪除程式自身思路非常巧妙。也避免了bat方式,迴圈刪除的問題。當然這種方法從本質上應該和方法一差不多。

但由於xp不支援choice命令,所以在使用方面上推薦方法一。  

擴充套件:

突然想到「伴隨程序」,也就是乙個程式產生兩個程序,定時檢測另乙個程序訊號,如果其中乙個程序被結束了,另乙個程序就立刻重新啟動被結束的程序,實現程式無法異常結束(特別是windows結束任務)的效果!

對於這種伴隨程序(乙個主要工作程序,乙個伴隨程序)結束的辦法:快速結束兩個程序,當然如果兩個程序的檢測定時足夠短,這種方法就不一定有效了。但可以用另乙個假的伴隨程序來處理而達到結束兩個程序的目的。

參考:

程式快速刪除自己

用c#寫自己刪除自己的程式

兩個互相監控程序的方法

PDF刪除程式

pdf空白頁刪除程式,網上pdf軟體刪除有些需要許可權 會員等亂七八糟的,然後通過查詢使用python實現了pdf空白頁或者指定頁刪除程式。可執行程式 usr bin env python coding utf 8 author singweek time 2020 4 20 16 17 from ...

linux下刪除程式

linux軟體的安裝和解除安裝一直是困擾許多新使用者的難題。在windows中,我們可以使用軟體自帶的安裝解除安裝程式或在控制面板中的 新增 刪除程式 來實現。與其相類似,在linux下有乙個功能強大的軟體安裝解除安裝工具,名為rpm。它可以用來建立 安裝 查詢 更新 解除安裝軟體。該工具是在命令列...

如何從「新增 刪除程式」列表中手動刪除程式

現在大家都在用office2007了,但是在公升級時發現了乙個問題,就是 word 2003 稿紙載入器解除安裝不掉,找不到安裝路徑,又不能安裝office2007,到網上找了 word 2003 稿紙載入器解除安裝程式,卻不能用。經過研究終於找到了方法,分享給大家,只要刪除 word 2003 稿...