TacAutoUpgrader使用指南
更新时间:2023-08-05 22:35:01 阅读量: 实用文档 文档下载
- tacaua推荐度:
- 相关推荐
TacAutoUpgrader使用指南
1 概述
1.1 缺点
仅支持HTTP方式升级。(不太适合客户端从网吧服务器上升级)
仅直接支持按文件大小比较来决定是否下载一个文件;或者干脆下载所有文件。不过可以通过事件OnFileStart来根据文件大小和/或最后修改时间来决定是否下载一个文件。 仅支持单一目标文件夹(因此不能升级程序目录的子目录中的文件,当然也有办法曲折实现)
1.2 优点
有详细的帮助文档
升级向导的图片可以定制:属性Wizard.Pic118x218
各对话框可以使用默认的或定制:属性ShowMessages(集合)
升级信息文件格式简单
1.3 其他
若有不能自动替换的文件,程序目录中将留下名为“原名”+“.utmp”格式的文件,如: scktsrvr.exe.utmp
txyfts.exe.utmp
因为它们对应的原文件也是一个可执行文件,该控件不能自动结束它们;不过,只需要在程序里结束一下即可:在事件OnDoOwnCloseAppMethod中结束这些程序;在事件OnAfterRestart中开始运行这些程序。
如果是有选择性地下载真正的升了级的文件,需要另行判断是否需要停止对应的程序。当然也可以简化处理:全部先停止,然后再全部启动。
在启动程序时,可能需要设置当前目录:
SetCurrentDir(ExtractFileDir(Application.ExeName));
1.4 相关信息:
1、 怎样根据文件名杀死对应的进程?
a) 干干净净地杀死进程
b) Windows 2000/XP两个杀死进程的命令Windows 2000/XP两个杀死进程的命令
其中以命令taskkill最为简单,例如:
taskkill /f /im txyfts.exe
2 升级信息文件 升级信息文件的格式:
#date=MM/DD/YYYY (标志版本的日期,当控件的VersionControl=byDate时生效) #version=any string (标志版本的字符串,当控件的VersionControl=byNumber时生效) #url1=http://www.77cn.com.cn/download/MyApp.exe (主文件的下载URL)
#url2=http://www.77cn.com.cn/download/MyApp.dll (以下是其他文件的下载URL) ...
#urlN=http://www.77cn.com.cn/download/ReleaseNotes.txt
#method=0 (由控件负责升级)
(向用户显示的消息放在一对花括号即"{}"中)
#message={消息的第一行
第二行 第三行}
升级信息文件放在升级服务器上,记下它的URL。
3 TacAutoUpgrader的使用
在程序主窗体放置一个TacAutoUpgrader,假设命名为au。为方便测试,暂定为用字符串作版本控制。于是设置VersionControl属性为byNumber。
设置属性InfoFileURL为前面记下的升级信息文件的URL,如
设置属性VersionNumber为当前版本串,如2.0.0.3。这是任意的,只要新旧值不同,控件就认为有新版了。
旧版的OnDoOwnCloseAppMethod事件处理器中要为下次升级作准备,例如结束一些进程,注意包括主程序本身。如:
procedure TMainForm.auDoOwnCloseAppMethod(Sender: TObject);
begin
WinExec('taskkill /f /im txyfts.exe', SW_SHOWNORMAL);
WinExec('taskkill /f /im scktsrvr.exe', SW_SHOWNORMAL);
Close;
Application.Terminate;
end;
新版的OnAfterRestart事件处理器中再启动这些进程。如:
procedure TMainForm.auAfterRestart(Sender: TObject);
begin
SetCurrentDir(ExtractFileDir(Application.ExeName));
WinExec('net start SocketServer', SW_SHOWNORMAL);
WinExec('txyfts.exe', SW_SHOWNORMAL);
end;
若要让控件自动检查升级,只需设置属性:AutoCheck := True。
若自行检查升级,也只需调用方法:CheckUpdate()。
4 静默升级
怎样实现有选择的静默升级呢?
首先,在升级服务器上放置一个标志文件,例如silent.txt,内容任意,也可以是0字节文件。 然后在程序中:
1、 在事件OnBeginUpgrade处理器中,检查参数Files中是否包含名为silent.txt的文件,若
包含,表示要作静默升级。
2、 若是静默升级,则所有对话框都不显示:
a) ShowMessages := [];
b) Wizard.Enabled := False;
3、 升级完毕,删除下载过来的silent.txt文件。
于是,最终的相关代码如下:
// 读到升级信息文件后的处理
procedure TMainForm.auBeginUpgrade(Sender: TObject;
const UpgradeMsg: String; UpgradeMethod: TacUpgradeMethod;
Files: TStringList; var CanUpgrade: Boolean);
var
i: Integer;
s: string;
bSilent: Boolean;
begin
CanUpgrade := Files.Count <> 0;
if not CanUpgrade then Exit;
for i := 0 to Files.Count - 1 do
begin
if Pos('silent.txt', Files[i]) > 0 then
begin
bSilent := True;
Break;
end;
end;
if bSilent then
begin
au.ShowMessages := []; // 静默方式,所有对话框都不显示
au.Wizard.Enabled := False;
Exit;
end;
// 非静默方式,询问用户是否升级
// CanUpgrade := MessageBox(Handle, PChar(UpgradeMsg), '是否升级?', MB_YESNO) = IDYES; // 注释掉 是想使用控件自己的询问对话框
end;
// 新版主程序第一次启动后的处理
procedure TMainForm.auAfterRestart(Sender: TObject);
var appDir, s: string;
begin
// 设置当前目录
appDir := ExtractFileDir(Application.ExeName);
SetCurrentDir(appDir);
// 删除静默升级的标志文件
s := appDir + '\silent.txt';
if FileExists(s) then
DeleteFile(s);
// 启动其他必需的进程
WinExec('net start SocketServer', SW_SHOWNORMAL);
WinExec(PChar(appDir + '\txyfts.exe'), SW_SHOWNORMAL);
end;
// 下一次升级时,在更新文件前需要关闭的进程
procedure TMainForm.auDoOwnCloseAppMethod(Sender: TObject);
begin
WinExec('taskkill /f /im txyfts.exe', SW_SHOWNORMAL);
WinExec('taskkill /f /im scktsrvr.exe', SW_SHOWNORMAL);
// 注意关闭本程序
Close;
Application.Terminate;
end;
正在阅读:
TacAutoUpgrader使用指南08-05
二00四——二00五学年第一学期二年级语文期未试卷04-15
Review of Type-Logical Semantics08-12
常德城市发展战略09-06
电工技术习题讨论课(第10周)-单相正弦交流电路(修改版)05-21
【全国区级联考】江苏省南京市秦淮区2018届九年级下学期中考模拟语文试题(原卷版)08-30
疫情防控上半年个人工作总结范文精选04-04
福州船政文化起源与发展09-23
人工加机械顶管施工方案05-05
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- TacAutoUpgrader
- 使用指南
- 2016华电北京考研841自控原理初试大纲
- 股权结构与公司绩效相关性研究——基于我国上市公司股权分置改革的实证分析
- 关于电机转子找动平衡方法的分析
- 电焊工培训计划及大纲(初、中级)
- 神经内科测试题
- 放射科诊断报告书写规范、审核制度及流程
- 八年级数学教学工作计划
- 高中物理动量定理和动能定理专项练习题
- 乙肝免疫球蛋白预防HBV母婴传播的效果观察
- 商业物业的管理
- 出师表翻译成白话文。经典
- 2011年自学考试《质量管理学》考点笔记第八章
- 戴森吸尘器他们不要辜负炒作?
- 如何利用信息资源进行论文写作和课题查询
- 面向对象的程序设计第一讲 C 语言基础
- 西北32万吨年C3C4混合脱氢装置;31万吨年MTBE装置;可行性研究报告-广州中撰咨询
- 中国互联网发展史
- 水电班组安全教育
- 关于平面、色彩构成在摄影艺术中的应用
- 2016云南大学新生入学指南-云南大学新生入学宝典-大学新生入学指南