偶然看到乙個可以自刪除的程式,於是了解下如何實現。然後整理如下:
思路:
在.net程式中,因為執行中的程式是受系統保護的,不能自己刪除自身的,所以自刪除的思路:
在關閉本程式之前啟動新的程序開啟另乙個程式,呼叫這個程式來刪除原程式。然後再完成外部程序的銷毀。
操作:
方法一:程式中開啟新的程序,刪掉程式後,再銷毀程序本身
流程:首先生成乙個bat檔案,然後讓bat執行刪除動作,就是:
1、生成刪除的bat
2、執行bat
3、快速退出
4、bat開始刪除exe
5、bat刪除bat
///[system.runtime.interopservices.dllimport("kernel32.dll")]///)【推薦】
/// private
static
void
deleteitself()
\"\r\n
" + "
if exist \"\" goto del\r\n
" + "
del %0\r\n
" }
//************ 執行批處理
winexec(vbatfile, 0
);
//************ 結束退出
}
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 稿...