inno退出安装如何实现(50分)

  • 主题发起人 主题发起人 水来
  • 开始时间 开始时间

水来

Unregistered / Unconfirmed
GUEST, unregistred user!
哪位大侠能告诉小弟怎么在inno的代码段实现退出安装呢?
 
在code段加上如下代码,返回false就会中断安装
function InitializeSetup(): Boolean;
begin
if FileExists(GetCurrentDir+'/inf.ini') then
begin
Result :=true;
end else
begin
MsgBox('安装时发生了错误,请重新下载安装文件'+ #13#10+ '下载地址 http://www.finer2.com/jit/。', mbInformation, MB_OK);
Result :=false;
end;
end;
 
我也知道在InitializeSetup里可以通过结果来中断安装,不过在InitializeSetup里获取旧软件的版本号时要用到GetVersionNumbersString(ExpandConstant('{app}/xxx.exe'),FileVersion) ,这时inno会报错,所以问题转移到如何在InitializeSetup里成功获取旧版本了,ufo大侠,请教,如能答复十分感激,实在为难,小弟分照给不误
 
InitializeSetup时,{app}常量还没有初始化的,所以不可用
另你的xxx.exe在注册表有没有保存有对应路径的,有的话就用RegQueryStringValue函数读取出来,就可以用GetVersionNumbersString了
 
inno setup会自动判断的,且可设置安装关键字来选择,发现旧版本时是提示覆盖还是自动覆盖,还是不覆盖?
另外,你这种情况在安装时保存注册表信息,然后读取注册表比较简单,
如果不保存注册表信息,那么用户换个目录安装就找不到旧版本了
 
谢谢,散分
 
后退
顶部