代码之家  ›  专栏  ›  技术社区  ›  Kris Erickson

确定是否安装了Flash OCX?

  •  2
  • Kris Erickson  · 技术社区  · 16 年前

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

    是否足以检查hkey_classes_root\shockwaveflash.shockwaveflash并检查curver>=9?有没有更好的测试方法?

    2 回复  |  直到 13 年前
        1
  •  2
  •   mghie    16 年前

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

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

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

        2
  •  1
  •   Kachwahed    13 年前

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

    function IsFlashInstalled: Boolean;
    var ClassID : TCLSID;
    begin
      Result := Succeeded(CLSIDFromProgID('ShockwaveFlash.ShockwaveFlash', ClassID));//Use CreateComObject() instead...
    end;