Skip to content

Instantly share code, notes, and snippets.

@0mg
Created February 8, 2012 07:53
Show Gist options
  • Save 0mg/1766593 to your computer and use it in GitHub Desktop.
Save 0mg/1766593 to your computer and use it in GitHub Desktop.
[メモ] Opera で古い Flash Player を使う

古いバージョンの Flash Player を使う

このメモは Windows 版の Opera 9.64 および Flash Player 10.0 と 10.3 向けに書かれています。別の環境でも通用するかどうかは不明です。

Firefox と Chrome では Flash Player 10.3 を使い、Opera では Flash Player 10.0 を使う、というふうに、別バージョンの Flash Player を共存させ、使い分けたい時がある。そのためにはどうすればいいか。

まず、基礎知識。

プラグインの読み込まれ方

Opera はプラグインの dll を複数箇所から読み込んでいる。

  • レジストリ: HKLM\SOFTWARE\MozillaPlugins に記されているパス
  • レジストリ: HKCU\SOFTWARE\MozillaPlugins に記されているパス
  • フォルダ: Opera(*1)\program\plugins

(*1) Opera をインストールしたフォルダ

.dll の拡張子を持つファイルのみがプラグインと見なされ、読み込まれる。

DLL の衝突

例えば、HKLM\SOFTWARE\MozillaPlugins に C:\NPSWF32.dll と書かれていて、C:\Opera\program\plugins にも NPSWF32.dll があったとする。この場合、二箇所から NPSWF32.dll が読み込まれるわけだが、「ファイルバージョン」が高い方が優先的に読み込まれる。

「ファイルバージョン」は、DLL のバイナリに含まれている。 NPSWF32.dll のファイルのプロパティを開くと、[バージョン情報] タブに表示される。

ファイル名は重要でない。Opera\program\plugins\hoge.dll の中身が Flash Player ならば、Opera は、それを Flash Player のプラグインファイルだと認識する。

共存実現の手順

  1. まず Flash 10.0 の NPSWF32.dll を SWF10.dll などに改名し、どこかに置いておく。
  2. 次に、Flash 10.3 をインストールする。これで、Firefox, Chrome, Opera などおそらく全てのブラウザが Flash Player 10.3 をプラグインとして使うようになる。
  3. SWF10.dll のファイルバージョンを変更する。これには Resource Hacker などを使う。 10.3 よりも大きな数値たとえば 99.9 とでもしておこう。
  4. ファイルバージョンを変更した SWF10.dll を Opera\program\plugins\ に置く。これで Opera だけが Flash Player 10.0 を使うようになる。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment