ShockWavePlayer 10/11の問題のまとめ

ShockwavePlayer10/11に関する再生トラブルの件MicroMediaさんとAdobeさんの合併のせいでアプリケーションに問題が発生していたんですが、今月のアップデートでも直らないようなのでちょっとまとめることにしました。

まず、問題がわかったのでAdobeさんと次のようなやりとりをしていました。(一部省略)




黒翼猫:ShockWave Player がインストールされていない PC に ShockWavePlayer 11をインストールすると、一見正常にインストールしたように見えるので、バージョンチェックのページも問題なく表示されます。

しかし、3Dコンテンツのサンプルページなどを見ると(ADOBE内の3Dデモページも例外なく)。
ShockWave Playerをインストール中と表示されて %SystemRoot%¥SYSTEM32¥MACROMEDIA¥SHOCKWAVE PLAYER 10 というフォルダが作成されて、バージョン10がインストールされてしまいます。
(11は%SystemRoot%¥SYSTEM32¥ADOBE¥SHOCKWAVE PLAYER 11 というフォルダにインストールされているのは確認済み)





Adobe:このたびお問い合わせいただいた内容につきまして、ご欄いただくDirectorコンテンツにより必要となるExtraが追加でインストールされますがDirector MX2004で生成されているコンテンツである場合、フォルダ名称は"SHOCKWAVE PLAYER 10"として生成されます。
本動作はShockwave Player11の動作トラブルではございません。





黒猫:仕様ならば仕方がないんですが、次の点が気になっています。

・最初にSWP10だけインストールしていれば問題は起こらない。
・インストールされていない場合、Extraが追加されると言うよりは、SWP10のインストーラーそのものが勝手に実行される。
・Intel Macの場合 SWP10はIntel CPUに対応していないはずなので、手動でエミュレーションモードでインストールしないと動作しないので、動作しない可能性がある。(現に11だけをインストールしたユーザーがMissing Shockwave Decompression XTRAと表示されて見られないと書いているのを見る)
・後で追加されるファイルがほとんど、Shockwave Player 11に含まれるファイルなので、無駄を感じる。

こちらでは、閲覧では問題ないのですが、コンテンツの公開側としては改良が望まれる点だと思います。 参考にお願いします。





先日ご案内差し上げた点についてご了承いただきまして、誠に恐縮でございます。
本件に伴う製品改善要望につきましては責任を持ってお預かりさせていただき、今後のよりよい製品の開発に反映できるよう努めさせていただきます。
ご不便ご迷惑おかけしておりますこと、弊社一同深くお詫び申し上げます。

また、このたびご連絡いただいた内容を持ちまして、本件についてはステータスを「終了」とさせていただきたく存じます。

要するにShockwavePlayer11を普通にインストールしても、Director2004で作成したものは互換性が無いので、バックグラウンドでShockwavePlayer10がインストールされてしまうという説明なんです。

XPならば特に問題はないのですが、Windows2000にはShockwavePlayer10をインストールすると、「Could not load the DLL library Kernel32.dll(GetSystemWow64DirectoryA). 指定されたプロシージャーが見つかりません。」の問題がありました。

ちなみに、6月6日にこっそりUpdataがバージョンアップしており、この問題はなくなっています。
(インストールされるのは 10.4.0.25というバージョンです。)

以下は以前の記事から抜粋です。(今はここまでしなくてもOKです)




ShockWavePlayer10をインストールしようとしたら。。。。こんなメッセージが。
ShockWaveInstaller
Could not load the DLL library Kernel32.dll
(GetSystemWow64DirectoryA). 指定されたプロシージャーが見つかりません。

そんなわけで、またHookアプリを作ってみました。→旧版はこちら
NTDLLはどうも起動時に直接フックじゃだめらしいです、1週間ほどかけて解析してみたら、最初に固定アドレスでロードされるのでフック用のDLLが色々な初期化処理を行わないとエラーになるんじゃないかと思われます。(ざっと見たところ、システムフォルダの指定や、実行ファイルの前処理とかも請け負ってるようです)
ShockWaveInstaller
注:このHookソフトは組み込み形式の常駐ソフトではなく、起動中に一時的に全ユーザープロセスのリンク情報を書き換えるだけなので、終了してしまえばWindowsに以後影響を及ぼしません。

もう一つが最新版のKDWのKDllInstを使う方法です。

1.Kernel32を選択して設定開始を選ぶ。
2. 再起動を要求されたら、再起動。
3. 再起動後、Kernel32の右が同一バージョンになっていれば成功、なっていなければ、1に戻ります。

ここで注意しなくてはいけないのは、ノートンなどのセキュリティソフトがSystemファイルのコピーを妨害することがあることです。
実行前に、一時的にノートンなどを無効にしてください。

KDWは
1.system32kernel32.dllを system32kernel2k.dllにコピー。
2.system32kernel2k.dllをいったん削除するスケジューリング。
3.KDWのkernel32.dllを system32kernel32.dllにコピーするようにスケジューリング。


何故か、あるバージョンのノートンの場合3だけを妨害するのでKernel32.dllが消えてしまい、起動できなくなってしまいます。





C:WINNTSYSTEM32>ren kernel2k.dll kernel32.dll
C:WINNTSYSTEM32>copy dllcachekernel2k.dll .
C:WINNTSYSTEM32>expand D:i386kernel32.dl_ -F:kernel32.dll .
復元するには、
回復コンソールから kernel2k.dllをリネームして元に戻すか
dllcacheにある kernel32.dllを system32にコピーして戻すか
CDの kernel32.dl_を解凍します。
そして、ShockwavePlayer11にも少し問題があります。
ShockWaveInstaller
一部の環境では『Shockwaveファイルの一部が見つかりません。』と言われてクラッシュしてしまいます。
 実は、ShockWavePlayer 11からは gdi+が必須になったようで、インストールしていないWindows2000だとクラッシュしてしまうようなのです。

そんなわけで、GDI+をダウンロードしてインストールしてください。
Platform SDK Redistributable: GDI+
解凍後に system32フォルダにコピーしてください。

ちなみに、アンインストールする場合もうまくいかない場合は、
SWP11の場合は、WINNT¥SYSTEM32¥adobeにある Director とShockwave 11 フォルダを
SWP10の場合は WINNT¥SYSTEM32¥Macromedにある Director とShockwave 10 と フォルダを消します。



過去のTrackBack
K-TAN's Sandbox | Shockwave11でトラブル発生(Windows2000の場合)
PC日記2.0
脳脂肪のパクリメモ

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です