DELPHI制作的通用升级程序(附源码)_第1页
DELPHI制作的通用升级程序(附源码)_第2页
DELPHI制作的通用升级程序(附源码)_第3页
DELPHI制作的通用升级程序(附源码)_第4页
DELPHI制作的通用升级程序(附源码)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DELPHI制作的通用升级程序设计思路:将升级程序放在web服务器端,并在服务器端用Upgrade.txt配置文件说明要升级的文件数、版本号及需下载的文件列表等信息;客户端执行升级时,用idhttp控件下载需升级的文件,并将下载的文件先存入客户端Upgrade临时目录,全部下载完毕后客户端生成一个copy.bat文件,然后程序调用bat文件将新下载的所有文件替换当前目录下的所有旧文件;最后在用户的选择下执行程序(本例的执行程序为Consultation.exe)具体步骤:第一步:将需要升级的程序放在WEB服务器的目录中(本例中 web服务器用 windows2003的IIS架构,详细的操作不在

2、本课所讲授的范围,请大家查询相关文档)。本例中web服务器为:30 ,所有文件都直接放在web站点的根目录下。第二步:配置服务器端Upgrade.txt文件(有兴趣的朋友可编写程序自动生成Upgrade.txt,本例用手工配置)web服务器端升级程序配置文件内容示例:文件名:Upgrade.txt(用txt方便下载,ini有时会有安全限制)文件内容:FileI nfoCoun t=5Versio n=1005FileListFile1=BossDataMa nage.exeFile2=C on sultati on. exeFile3=MyExcel.dllF

3、ile4=Upgrade.exeFile5=配置说明.txt第三步:设计界面: 客户端升级程序界面:在设计界面用 VIEW AS TEXT 查看的结果:object Forml: TFormlLeft = 235Top =164Width = 416Height = 376Caption =升级程序Color = cIBt nF aceFon t.Charset = DEFAULT_CHARSETFon t.Color = clWi ndowTextFon t.Height = -11Fon t.Name = MS Sans SerifFon t.Style =Icon.Data = /此处内

4、容被我省略了,主要是icon图标信息OldCreateOrder = FalsePositi on = poScree nCen terPixelsPerl nch = 96TextHeight = 13object Label2: TLabelLeft = 8Top = 6Width = 217Height = 27AutoSize = FalseCaption = 发现新版本,请先升级程序 ! Font.Charset = DEFAULT_CHARSET Font.Color = clNavyFont.Height = -13Font.Name = MS Sans SerifFont.St

5、yle = ParentFont = False end object Memo1: TMemoLeft = 3Top = 38Width = 401Height = 305TabOrder = 0 end object Button2: TButtonLeft = 243Top = 5Width = 75Height = 25Caption = 立即升级 TabOrder = 1OnClick = Button2Click end object Button1: TButtonLeft = 322Top = 5Width = 75Height = 25Caption = 下次再说 TabOr

6、der = 2OnClick = Button1Click end object IdHTTP1: TIdHTTPMaxLineAction = maException ReadTimeout = 0AllowCookies = True ProxyParams.BasicAuthentication = False ProxyParams.ProxyPort = 0 Request.ContentLength = -1 Request.ContentRangeEnd = 0 Request.ContentRangeStart = 0Request.ContentType = text/htm

7、l Request.Accept = text/html, */* Request.BasicAuthentication = FalseRequest.UserAgent = Mozilla/3.0 (compatible; Indy Library) HTTPOptions = hoForceEncodeParamsLeft = 352Top = 80endend第四步:编写代码实现具体功能。源程序完整代码:unit Main;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, F

8、orms, Dialogs,wininet, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP,iniFiles,SHELLAPI;typeTForm1 = class(TForm)Memo1: TMemo;Button2: TButton;IdHTTP1: TIdHTTP;Label2: TLabel;Button1: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject

9、); private Private declarations publicend;varForm1: TForm1;implementation$R *.dfm procedure TForm1.Button1Click(Sender: TObject); varProPwd:THandle;beginWinExec(Consultation.exe,SW_SHOWNORMAL);ProPwd:=FindWindow(nil, 人工客服系统 ); /ShowMessage(IntToStr(ProPwd);SetForegroundWindow(ProPwd);/ 设为活动窗口 Applic

10、ation.Terminate;end;procedure TForm1.Button2Click(Sender: TObject); varMyIniFile:TIniFile;MyStream1 :TMemoryStream;CurrPath :string;Path : string;FileName :string;sValue :string;nCount :Integer;i :Integer;F:TextFile;ProPwd:THandle;begin/ 初始工作 : 取得应用程序当前路径和 ini 文件名CurrPath :=ExtractFilePath(Paramstr(

11、0);/SetCurrentDirectory(PChar(CurrPath);/ 设置当前工作路径Path := CurrPath+Upgrade;/ 下载路径FileName := Path + Upgrade.ini; /ini 文件(含路径 )/创建升级目录if not DirectoryExists(Path) thenbeginif not ForceDirectories(Path) thenbeginshowmessage(创建目录失败 );exit;end;end;/第 1 步:下载 http 服务器上的 ini 文件MyStream1 :=TMemoryStream.Cre

12、ate;IdHTTP1.Get(30/Upgrade.txt,MyStream1);MyStream1.SaveToFile(FileName);/第 2 步: 解析 ini 文件并下载需升级的文件MyIniFile := TIniFile.Create(FileName); nCount:=MyIniFile.ReadInteger(FileInfo,Count,0);memo1.Lines.Add( 正在下载升级文件 .);/ShowMessage(IntToStr(nCount);for i:=1 to nCount dobegin /ShowMessa

13、ge(IntToStr(i); sValue:=MyIniFile.ReadString(FileList,File+IntToStr(i),Unknown); Memo1.Lines.Add(sValue);MyStream1.Clear; / 每次下载前先清空 MyStream1IdHTTP1.Get(30/+sValue,MyStream1);MyStream1.SaveToFile(Path+sValue);end;/ 第 n 步:释放 ini 变量MyIniFile.Destroy;/ 第 步:生成 copy.bat 文件将下载的文件拷贝到程序目录AssignFile(F,copy.bat);Rewrite(F);Writeln(F,copy Upgrade*.*);CloseFile(F);ShellExecute(handle,open,copy.bat,nil,nil,SW_HIDE);Memo1.Lines.Add( 升级完毕 !);if messagebox(0, 升 级 成 功 , 是 否 现 在 执 行 程 序 ?, 系 统 询 问 ?,MB_YESNO+MB_ICONQUESTION)=6 thenb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论