VC 如何使程式執行後自己刪除自己

2021-06-12 07:52:28 字數 1107 閱讀 1343

有時候,我們需要建立乙個執行後能夠自己刪除自己的可執行程式即自刪除程式。很明顯如果乙個程序通過直接呼叫deletefile()來刪除自己是不可能的。必須另想辦法,經過本人在網上參考很多資料後實際測試並集眾家之所長,發現有二種方法效果比較好。現在將其封裝成函式,這樣使用將更加容易:

方法1,呼叫bat檔案。

[cpp]view plain

copy

//向指定檔案寫入文字。如果檔案不存在就建立。

intwritetexttofile(

const

char

szfilename, 

const

char

*lpsztext)  

void

//可以達到效果  

方法二。呼叫系統的cmd程式並傳入引數。

[cpp]view plain

copy

void  

呼叫方法與前面相同。

這二種方法都不會出現dos程式視窗,完全達到了無影無蹤的刪除效果,更加不會出現有的程式自刪除後仍顯示程式圖示,要重新整理資源管理器後才發現程式被刪除了。

再對**作下講解:

1._pgmptr 的定義為extern char * _pgmptr,stdlib.h檔案對其說明為:points to the module (exe) name。使用_pgmptr與使用getmodulefilename(null, szexepath, max_path);來得到程式的路徑是等效的。但是,絕對要加上""雙引號後才能作引數傳給批處理程式,不然會出錯。

2.shellexecute()最後乙個引數為sw_hide表示隱藏視窗。

3.dos命令del的/q引數表示安靜模式,這樣刪除檔案時就不會出現要求使用者確認的提示對話方塊了。

附:二種方法都要加入標頭檔案及lib庫

[cpp]view plain

copy

#include 

#include 

#include 

#include 

#pragma comment(lib, "shell32.lib")

VC 如何使程式執行後自己刪除自己

include include include include pragma comment lib,shell32.lib char szcommandline max path 10 設定本程序為實時執行,快速退出 setpriorityclass getcurrentprocess realt...

VC 如何使程式執行後自己刪除自己

有時候,我們需要建立乙個執行後能夠自己刪除自己的可執行程式即自刪除程式。很明顯如果乙個程序通過直接呼叫deletefile 來刪除自己是不可能的。必須另想辦法,經過本人在網上參考很多資料後實際測試並集眾家之所長,發現有二種方法效果比較好。現在將其封裝成函式,這樣使用將更加容易 方法1 呼叫bat 檔...

VC如何使程式執行後自己刪除自己

有時候,我們需要建立乙個執行後能夠自己刪除自己的可執行程式即自刪除程式。很明顯如果乙個程序通過直接呼叫deletefile 來刪除自己是不可能的。必須另想辦法,經過本人在網上參考很多資料後實際測試並集眾家之所長,發現有二種方法效果比較好。現在將其封裝成函式,這樣使用將更加容易 方法1 呼叫bat 檔...