




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国2,4-二氯-5-氟苯乙酮数据监测报告
- 2025至2030年中国高温烫布市场分析及竞争策略研究报告
- 2025至2030年中国门框式辐射测量仪市场分析及竞争策略研究报告
- 2025至2030年中国针织羊绒围巾市场分析及竞争策略研究报告
- 2025至2030年中国脉通冲剂市场分析及竞争策略研究报告
- 2025至2030年中国精制复合纸市场分析及竞争策略研究报告
- 2025至2030年中国白牛卡纸市场分析及竞争策略研究报告
- 2025至2030年中国比较量仪市场分析及竞争策略研究报告
- 2025至2030年中国早早孕测试盒市场分析及竞争策略研究报告
- 2025至2030年中国手压式封口机市场分析及竞争策略研究报告
- 高速铁路接触网压接式电连接安装工法CREC-01-2018-60
- 人教版(2023版)初中语文九年级上册全册同步练习+单元综合训练+专项训练+期中期未测试合集(含答案)【可编辑可打印】
- 电磁兼容中抗扰度试验教学课件
- 中国邮政储蓄银行理财考试真题模拟汇编(共719题)
- 医务科岗前培训
- 市政雨污水管道清污清淤工程地下有限空间作业专项方案2020年10月10
- 医疗器械行业市场部人员岗位职责
- 旅行社导游带团操作流程
- 部编版小学道德与法治三年级下册期末质量检测试卷【含答案】5套
- 怎样当好一名师长
- DB21T 3354-2020 辽宁省绿色建筑设计标准
评论
0/150
提交评论