通用程式自動更新公升級

2021-09-07 22:35:36 字數 3606 閱讀 3989

1)服務端iis**上建立新的虛擬路徑,給新建立的虛擬路徑增加mime型別:.bpl、.ini等。

2)設定update.ini檔案版本號配置檔案

[ver]

config.ini=1

bplcommon.bpl=1

bplgoods.bpl=1

bplpower.bpl=1

bplpurchasing.bpl=1

prjmain.exe=2

3)客戶端

untautoupdate.dfm檔案:

object frmautoupdate: tfrmautoupdate

left = 0

top = 0

caption = #33258#21160#21319#32423#31243#24207

clientheight = 140

clientwidth = 573

color = clbtnface

font.charset = default_charset

font.color = clwindowtext

font.height = -11

font.name = 'tahoma'

font.style =

oldcreateorder = false

position = poscreencenter

onclose = formclose

oncreate = formcreate

ondestroy = formdestroy

onshow = formshow

pixelsperinch = 96

textheight = 13

object b***ownload: tbutton

left = 199

top = 24

width = 138

height = 41

caption = #26816#26597#26356#26032

font.charset = default_charset

font.color = clwindowtext

font.height = -24

font.name = 'tahoma'

font.style =

parentfont = false

taborder = 0

onclick = b***ownloadclick

endobject bar: tprogressbar

left = 24

top = 88

width = 529

height = 17

taborder = 1

endobject cdslocal: tclientdataset

aggregates = <>

indexfieldnames = 'filename'

params = <>

left = 48

top = 8

object cdslocalfilename: tstringfield

fieldname = 'filename'

size = 100

endobject cdslocalver: tintegerfield

fieldname = 'ver'

endend

object cdsserver: tclientdataset

aggregates = <>

indexfieldnames = 'filename'

params = <>

left = 120

top = 8

object cdsserverfilename: tstringfield

fieldname = 'filename'

size = 100

endobject cdsserverver: tintegerfield

fieldname = 'ver'

endend

enduntautoupdate.pas檔案:

unit untautoupdate;

inte***ce

uses

winapi.windows, winapi.messages, system.sysutils, system.variants,

system.classes, vcl.graphics,

vcl.controls, vcl.forms, vcl.dialogs, winapi.urlmon, vcl.stdctrls,

system.inifiles, data.db, datasnap.dbclient,

vcl.comctrls, wininet;

varfrmautoupdate: tfrmautoupdate;

implementation

procedure tfrmautoupdate.b***ownloadclick(sender: tobject);

varsource, dest: string;

errcount: integer;

function tfrmautoupdate.downloadfile(source, dest: string): boolean;

begin

trydeleteurlcacheentry(pchar(source)); // 先要清空快取

result := urldownloadtofile(nil, pchar(source), pchar(dest), 0, nil) = 0;

except

result := false;

end;

end;

procedure tfrmautoupdate.formclose(sender: tobject; var action: tcloseaction);

begin

action := cafree;

frmautoupdate:=nil;

end;

procedure tfrmautoupdate.formcreate(sender: tobject);

begin

flist :=tstringlist.create;

end;

procedure tfrmautoupdate.formdestroy(sender: tobject);

begin

freeandnil(flist);

end;

procedure tfrmautoupdate.initcdslocal;

begin

if not cdslocal.active then

cdslocal.createdataset

else

cdslocal.emptydataset;

end;

procedure tfrmautoupdate.initcdsserver;

begin

if not cdsserver.active then

cdsserver.createdataset

else

cdsserver.emptydataset;

end;

end.

自動更新(自動公升級)元件分享

原文 自動更新 自動公升級 元件分享 自從接觸安裝部署以來就有軟體公升級的需求,最簡單的就是clickonce,但無法做到深入控制,本寄希望於wix可以自己實現,但現在還沒有找到例子。然後才自己實現。要宣告一下,這是在聖殿騎士autoupdater基礎上改動過來的。基於他分享的精神,我也繼續分享。我...

exe程式自動更新

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

C 編寫自動更新程式

現在但凡是乙個程式都有相應的公升級程式,如果你的程式沒有相應的公升級程式,那麼你就需要留意了。你的使用者很可能丟失!網上關於自動公升級的例子也有很多,前幾天乙個朋友很苦惱的跟我說它的客戶在逐漸減少 據他所說,他都客戶因為他的程式公升級很麻煩,所以很多人放棄了使用它的軟體 問我說怎麼辦?其實他也知道該...