2

フラッシュ ocx が Innosetup (またはその他のインストーラー) にインストールされているかどうかを判断する最善の方法は何ですか? 自分でインストールしようとは思わないので、ユーザーに強制的にフラッシュ サイトにアクセスしてインストールしてもらいます。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;

独自の機能を使用してユーザーにメッセージ ボックスを表示する方法、インストールをキャンセルする方法、デフォルト ブラウザで Flash サイトを開く方法など、Inno Setup パッケージのさまざまな例を確認してください。

于 2009-01-17T11:45:59.310 に答える
1

Try/Except を使わない簡単な方法

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