Определить Chrome как браузер, связанный с файлами html в Windows

. Мы предоставляем учебные видеоролики по Flash, которые устанавливаются на локальный (Windows )жесткий диск вместе с нашим приложением. Наше приложение использует ShellExecute для открытия html-файла (в любом браузере, связанном с html-файлами ), в которые они встроены.

По-видимому, в более поздних Flash-плеерах Chrome есть ошибка, из-за которой не удается воспроизвести локальные файлы (. но файлы через Интернет в порядке.)

(Честно говоря, я удивлен, что эта ошибка не была исправлена ​​Google. Мне это кажется большим… но, может быть, немногие играют во Flash из других мест, кроме Интернета?)

На экране :плагинов в Chrome есть работа -, но мы не можем просить наших пользователей сделать это. Вот обсуждение работы -вокруг:http://techsmith.custhelp.com/app/answers/detail/a_id/3518

Я хочу предоставить своим пользователям возможность открывать наши html-файлы в IE. Если Chrome является их браузером по умолчанию , я бы показывал флажок, говорящий что-то смущающее, например: «Если наши обучающие видео не воспроизводятся, установите этот флажок, чтобы попробовать их в IE».

Это код XE2 (двухлетней давности на SO:ссылка)еще разумно?

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;

6
задан Community 23 May 2017 в 10:34
поделиться