那位朋友有在线升级的代码,请发一份给我。(50分)

  • 主题发起人 主题发起人 kimlon
  • 开始时间 开始时间
K

kimlon

Unregistered / Unconfirmed
GUEST, unregistred user!
就是如果在网上的版本比当前电脑运行的版本新时,就执行下载并升级。

谢谢。
kimlon@163.com
 
你到这里下个
www.playicq.com
 
www.playicq.com.收费!
 
说个代码名吧,我找不到。
 
http://www.playicq.com/dispdocnew.php?id=9280
 
参照dfw上的代码写的,下载指定的链接(URL)为指定文件(AFile),但有个问题,用代理上网的连接不上,怎么解决?

uses WinINet

function UrlGetFile(const URL, AFile: string;FPB:TProgressBar=nil): Boolean;
var
hFile, HInet: HINTERNET;
Buffer: array[0..1023] of Char;
BufRead: Cardinal;
BufSize: Cardinal;
dwIndex: LongWord;
begin
Result := False;
HInet := InternetOpen('Agent', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(HInet) then
try
hFile := InternetOpenUrl(HInet, PChar(URL), nil, 0, INTERNET_FLAG_RELOAD + INTERNET_FLAG_KEEP_CONNECTION, 0);
if Assigned(hFile) then
try
dwIndex := 0;
BufSize := SizeOf(Buffer);
if FPB<>nil then
begin
HttpQueryInfo(hFile, HTTP_QUERY_CONTENT_LENGTH, @Buffer, BufSize, dwIndex );
FPB.Max :=StrToIntDef(Buffer, 0) div SizeOf(Buffer);
FPB.Min :=0;
FPB.Position :=0;
end;
BufSize := SizeOf(Buffer);
with TFileStream.Create(AFile, fmCreate) do
try
while InternetReadFile(hFile, @Buffer, BufSize, BufRead) and (BufRead > 0) do
begin
Write(Buffer, BufRead);
if FPB<>nil then FPB.Position :=FPB.Position +1;
end;
Result := True;
finally
Free;
end;
finally
InternetCloseHandle(hFile);
end;
finally
InternetCloseHandle(hinet);
if FPB<>nil then FPB.Position :=0;
end;
end;
 
忘了说了,我的方法是用这个函数下载个自己加密的包含了版本及升级信息的文件,分析文件再决定是否下载、下载哪些文件。
 

Similar threads

D
回复
0
查看
798
DelphiTeacher的专栏
D
D
回复
0
查看
741
DelphiTeacher的专栏
D
D
回复
0
查看
692
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部