Winform單個exe實現自更新的技巧

2021-09-29 11:11:16 字數 586 閱讀 2958

winform實現軟體公升級的方法很多,比如採用clickonce發布、update.exe + 主程式.exe。而本文講的是只有乙個exe的情況下巧用vbs指令碼執行命令實現自殺並更新的方式,網上關於這種方式的資料較少。

實現步驟:

服務端(我使用的是webapi)提供兩個方法:

1. getversion. 該方法返回主程式exe的檔案版本號和修改時間。

2. getstream. 該方法返回主程式exe的檔案流。

客戶端:

1. 啟動時呼叫getversion方法,獲取文字版本號和修改時間,與當前主程式.exe進行對比,當發現不一致時判斷需要公升級。

3. 寫vbs檔案、執行vbs檔案,**如下

其中vbs檔案原理:

1. 呼叫wmic命令殺死當前正在執行的主程式.exe。

2. 刪除主程式.exe。

3. 將update資料夾下的主程式.exe複製到原主程式.exe的路徑。

4. 執行新的主程式.exe。

5. 刪除vbs檔案自身。

vbs檔案執行整個過程很流暢且悄無聲息,執行完還可以刪除自己,比較適合一些有**強迫症(乙個exe走天下)的朋友。

EXE程式的自刪除實現

程式的自刪除已經不是什麼新鮮的話題了,它廣泛運用於木馬 病毒中。試想想,當你的程式還在執行中 通常是完成了駐留 感染模組 它就自動地把自己從磁碟中刪掉,這樣一來,就做到了神不知鬼不覺,呵呵,是不是很cool呢?自刪除 self deleting 最早的方法是由 gary nebbett 大蝦寫的,太...

EXE程式的自刪除實現

程式的自刪除已經不是什麼新鮮的話題了,它廣泛運用於木馬 病毒中。試想想,當你的程式還在執行中 通常是完成了駐留 感染模組 它就自動地把自己從磁碟中刪掉,這樣一來,就做到了神不知鬼不覺,呵呵,是不是很cool呢?自刪除 self deleting 最早的方法是由 gary nebbett 大蝦寫的,太...

winform 嵌入 外部 exe窗體

using system using system.collections.generic using system.componentmodel using system.drawing using system.data using system.text using system.window...