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

求助老虎版主, 在安装时检测旧版问题 [复制链接]

上一主题 下一主题
离线546242502
 

发帖
332
金钱
-3060
威望
-306
只看楼主 倒序阅读 0 发表于: 2015-03-16
用户被禁言,该主题自动屏蔽!
离线gnatix

发帖
7696
金钱
-8279
威望
-828
只看该作者 1 发表于: 2015-03-17
没有测试,供参考:

function InitializeSetup():boolean;
var
  MykeynotExist:boolean;
  ResultCode: Integer;
  uicmd: String;
  skNames: TArrayOfString;
  j: Integer;
begin
  MykeynotExist:= true;
  if RegGetSubkeyNames(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall', skNames) then
  begin
  for  j:= 0 to GetArrayLength(skNames)-1 do
    begin
    if Copy(skNames[j],1,10) = 'WinCHM Pro' then
      begin
      //卸载系统安装的版本
      if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\'+skNames[j], 'UninstallString', uicmd) then
        begin
        MyKeynotExist:= false;
        if MsgBox('检测到您的系统中已经安装了 ' +  Copy(skNames[j],1,15) + #10#10 + '点击''确定''先卸载已安装版本后再进行安装.'#10#10'点击''取消''不卸载已安装版本,直接继续安装.',mbInformation,MB_OKCANCEL)=IDOK then
          Exec(RemoveQuotes(uicmd), '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode);
        end;
      end;
    end;
  end;
  Result:= true;
end;
离线546242502

发帖
332
金钱
-3060
威望
-306
只看该作者 2 发表于: 2015-03-17
用户被禁言,该主题自动屏蔽!