论坛风格切换切换到宽版
  • 2445阅读
  • 2回复

请教虎版如何在卸载是增加对话框用以确认是否同时卸载另一个别的程序? [复制链接]

上一主题 下一主题
离线yiyeshu2012
 

发帖
17
金钱
170
威望
17
只看楼主 倒序阅读 0 发表于: 2014-12-17
比方说数据库
可能初始安装时客户端没有装数据库所以安装程序安装了数据库
但是在等待卸载的过程中可能装了基于数据库的其他的软件
这样的话就不能一同卸载了
所以需要在卸载时让客户选择一下是否同时卸载数据库

var
    NeedUninstallMySQL: Boolean;

function IsNeedUninstallMySQL(): Boolean;
begin
    result := NeedUninstallMySQL;
end;


function InitializeUninstall(): Boolean;
var
    IsRunning: Integer;
begin
    result := true;
    NeedUninstallMySQL := false;
    if MsgBox('是否同时删除MySQL数据库服务?' #13#13 '删除前请确认是否有别的应用程序在使用MySQL数据库存放数据!', mbConfirmation, MB_YESNO) = idYES then
    begin
        NeedUninstallMySQL := true;
    end;
end;

[UninstallRun]
Filename: "msiexec.exe"; Parameters: "/x {{56DA0CB5-ABD2-4318-BEAB-62FDBC9B12CC} /quiet /qn"; Flags: skipifdoesntexist; StatusMsg: "正在卸载MySQL Server..."; Check: IsNeedUninstallMySQL And Is64BitInstallMode

验证发现没起作用
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2014-12-20
用下面的代码可能更合适一些。

[code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
  ResultCode: Integer;
begin
  if CurUninstallStep = usDone then
    begin
      if Is64BitInstallMode then
        if MsgBox('是否同时删除MySQL数据库服务?' #13#13 '删除前请确认是否有别的应用程序在使用MySQL数据库存放数据!', mbConfirmation, MB_YESNO) = idYES then
          Exec('msiexec.exe', '/x {56DA0CB5-ABD2-4318-BEAB-62FDBC9B12CC} /quiet /qn', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
    end;
end;
离线yiyeshu2012

发帖
17
金钱
170
威望
17
只看该作者 2 发表于: 2014-12-22
好的
谢谢虎版