アプリケーションとともにローカル(Windows)ハードディスクにインストールするFlashチュートリアルビデオを提供します。このアプリは、ShellExecuteを使用して、それらが埋め込まれているhtmlファイル(htmlファイルに関連付けられているブラウザーで)を開きます。
どうやら、Chromeの最近のFlashプレーヤーには、ローカルファイルの再生に失敗するバグがあります(ただし、Web上のファイルは問題ありません)。
(率直に言って、このバグがGoogleによって修正されていないことに驚いています。私にとっては大きなバグのようです...しかし、Web以外の場所からFlashをプレイする人はあまりいないのではないでしょうか?)
Chromeのabout:plugins画面には回避策がありますが、ユーザーにそうするように依頼することはできません。回避策の説明は次のとおりです。http://techsmith.custhelp.com/app/answers/detail/a_id/3518
ユーザーにHTMLファイルIEを開くオプションを提供したいと思います。 Chromeがデフォルトのブラウザの場合、「チュートリアルビデオが再生されない場合は、このチェックボックスをオンにしてIEで試してください」などの恥ずかしいことを示すチェックボックスを表示します。
このXE2コード(2年前のSO:linkから)はまだ妥当ですか?
if pos('CHROME', UpperCase(GetAssociation('C:\Path\File.html')) > 0 then
// Chrome is the default browser
function GetAssociation(const DocFileName: string): string;
var
FileClass: string;
Reg: TRegistry;
begin
Result := '';
Reg := TRegistry.Create(KEY_EXECUTE);
Reg.RootKey := HKEY_CLASSES_ROOT;
FileClass := '';
if Reg.OpenKeyReadOnly(ExtractFileExt(DocFileName)) then
begin
FileClass := Reg.ReadString('');
Reg.CloseKey;
end;
if FileClass <> '' then begin
if Reg.OpenKeyReadOnly(FileClass + '\Shell\Open\Command') then
begin
Result := Reg.ReadString('');
Reg.CloseKey;
end;
end;
Reg.Free;
end;