2

确定 Flash ocx 是否安装在 Innosetup(或任何安装程序)中的最佳方法是什么。我不想尝试自己安装它,我只会强迫用户去flash站点安装,我只想确保安装了flash.ocx(版本9+)。

检查 HKEY_CLASSES_ROOT\ShockwaveFlash.ShockwaveFlash 并检查 CurVer >= 9 是否足够?有没有更好的方法来测试这个?

4

2 回答 2

2

在代码部分添加一个函数来检查是否可以创建 Flash 控件的实例,如下所示:

function IsFlashInstalled(): boolean;
var
  V: Variant;
begin
  try
    V := CreateOleObject('ShockwaveFlash.ShockwaveFlash.9');
    Result := True;
  except
    Result := False;
  end;
end;

查看 Inno Setup 包中的各种示例,了解如何使用您自己的功能向用户显示消息框、取消安装、在默认浏览器中打开 Flash 站点或任何您想做的事情。

于 2009-01-17T11:45:59.310 回答
1

无需尝试/例外的简单方法

function IsFlashInstalled: Boolean;
var ClassID : TCLSID;
begin
  Result := Succeeded(CLSIDFromProgID('ShockwaveFlash.ShockwaveFlash', ClassID));//Use CreateComObject() instead...
end;
于 2011-06-12T19:56:25.653 回答