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