通過web對 exe程式進行更新和修改

2022-08-03 09:27:10 字數 3168 閱讀 7441

實現功能:通過**更新使用者的軟體,需要聯網,也可以通過本地**更新區域網使用者軟體。

根本實現:1.乙個**(我用的是自己的www.aq36.xyz ,本地就可以,可以用localhost)然後執行update.exe->。

3.更新update.xml文件版本資訊,跟新結束。

主要**:

1.解析xml檔案:

///

///載入並解析xml

/// private

void

loadxml()

//獲取執行的sql語句列表

xmlnodelist sqllist = n.selectnodes("

//update[@version='

" + tempversion + "

']//sqls//sql");

foreach (xmlnode n2 in

sqllist)

//公升級的提示資訊

xmlnodelist msglist = n.selectnodes("

//update[@version='

" + tempversion + "

']//msg");

foreach (xmlnode n3 in

msglist)

】 ", new

object ) + "

\r\n";}}

}}catch

(exception e)

}

private

void downloadfile(int

index)

/ [ ]

", new

object );

pbnow.value = 0

; downwebclient.downloadfileasync(

/temp/

" +filename);

}catch

(webexception exception)

}

3.開始公升級:

private

void

startupdate()

this.downwebclient.downloadprogresschanged += new

downloadprogresschangedeventhandler(downloadprogresschanged);

this.downwebclient.downloadfilecompleted += new

asynccompletedeventhandler(downloadfilecompleted);

if (this.allsize == 0l || files == null || files.count == 0

)

if (files != null && files.count > 0

)

}

private

void downloadfilecompleted(object

wcsender, asynccompletedeventargs ex)

else

\temp\

\" + this

.filename);

\\", "");\

" + this

.filename);

this.downedsize += this

.filesize;

if (this.files.count > this

.downindex)

else

; writer.writestartdocument();

writer.writestartelement(

"update");

writer.writestartelement(

"processname");

writer.writestring(

this

.processname);

writer.writeendelement();

writer.writestartelement(

"version");

writer.writestring(

this

.version.tostring());

writer.writeendelement();

writer.writestartelement(

"url");

writer.writestring(

this

.updateurl);

writer.writeendelement();

writer.writeendelement();

writer.writeenddocument();

writer.flush();

writer.close();

if (!string.isnullorempty(this

.msg))

this.updatecompleted(1

); }}}

跟新進度條效果圖:

更新前:

更新後:

一些文件****:

1.本地update.xml

**粗糙,只是乙個簡單的demo,簡單參考一下,有錯誤及時聯絡我。

exe程式自動更新

exe檔案自動更新 思路邏輯 1.在客戶端 使用者 存在某exe檔案 及乙個.ini檔案 2.在公網伺服器某路徑下存放該exe檔案及.ini檔案 3.在客戶端執行exe檔案,取得本地的.ini中記錄的版本號 並取得公網伺服器該程式路徑下的.ini記錄的版本號 對比4.若有更新則進行程式更新操作 指令...

對exe檔案進行數字簽名

在之前的文章 py2exe inno setup整合打包python程式 中,我們編寫了python指令碼,使得可以一鍵對python編寫的windows程式進行打包,並編譯成exe可執行檔案,現在我們在此基礎上新增對exe檔案進行數字簽名的指令碼。首先,在對exe檔案進行數字簽名時,當然要有乙個p...

通過C 對String進行過載

首先,我們將所需寫過載函式和其他成員變數放在乙個標頭檔案中。函式過載的判斷標準 1 引數個數不同 2 引數型別不同 3 引數順序不同 注意 函式的返回值不可作為函式過載的判斷標準。在這裡存在對運算子的過載,在運算子的過載前,需要加關鍵字operator 在這裡對引用及物件要關注一下 引用返回的是變數...