Определить, установлена ​​ли Flash OCX? - PullRequest
2 голосов
/ 16 января 2009

Как лучше всего определить, установлен ли флэш-ocx в Innosetup (или какой-либо инсталлятор в этом отношении). Я не хочу пытаться установить его самостоятельно, я просто заставлю пользователя перейти на сайт flash и установить, я просто хочу убедиться, что flash.ocx (версия 9+) установлена.

Достаточно ли проверить HKEY_CLASSES_ROOT \ ShockwaveFlash.ShockwaveFlash и проверить, что CurVer> = 9? Есть ли лучший способ проверить это?

Ответы [ 2 ]

2 голосов
/ 17 января 2009

Добавьте функцию в разделе кода, чтобы проверить, можете ли вы создать экземпляр элемента управления Flash, например:

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

Ознакомьтесь с различными примерами в пакете Inno Setup о том, как использовать свою собственную функцию для отображения окна сообщения пользователю, отмены установки, открытия Flash-сайта в браузере по умолчанию или чего вы хотите.

1 голос
/ 12 июня 2011

Простой способ без проб / исключений

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