こんにちは、阿久津です。私事で恐縮ですが、このたび「Windowsの時代は終わったのか?」という新書を上梓いたしました。これまで筆者が見て触れてきたWindows OSの歴史を紐解き、同OSが成してきた功績と失敗。今後の展開を述べた内容となっています。ご興味がある方は是非書店で手に取っていただければ幸いです。
さて、ある日Internet Explorer 9でファイルのダウンロードを試していたたところ、通知バーではなく、古いダイアログが表示されました。Webサーバ側の問題なのかと思い、自身のテストサーバ(Linux+Apache2環境)で試しました。すると、ファイルによって動作が異なります(図01~02)。
色々調べてみますと、関連付けたアプリケーションの実装形式によって変化するらしく、Microsoft Officeを導入していない環境では、Wordファイルのダウンロード時も通知バーが現れました。これは、アプリケーション側がCOMインターフェースを用意しているか否かで動作が異なる仕組みなのでしょう。
対象となるファイルを添付ファイルとして扱うか、インラインデータとして扱うかを宣言するContent-Dispositionヘッダーを、Webサーバに発信させることで、事なきを得ました(図03)。
しかし気になるのが、その後の動作。<開く>ボタンをクリックしますと、当たり前ですがWordが起動し、ダウンロードしたWordファイルが開きます。だが、以前のInternet Explorerでは、同ウィンドウ内でMicrosoft Officeアプリケーションのファイルを開いていました。
この仕様変更はInternet Explorer 7以降で加わったものですが、改めて気付くと自身で制御したくなりました。そこで今回は、Internet Explorer 9内でWord 2010ドキュメントを開くチューニングをお届けします。
1.管理者権限でレジストリエディターを起動します。
2.HKEY_CLASSES_ROOT \ Word.Document.12キーを開きます。
3.DWORD値「BrowserFlags」を開き、値のデータを「80000024」に変更します。
4.[F5]キーを押してから、レジストリエディターを終了させます。
これでチューニングが終了しました(図04~07)。
早速結果を確認してみましょう。テストサーバで拡張子「.docx」を持つファイルをクリックすると現れるダイアログの<開く>ボタンをクリックしてください。従来と異なり、Internet Explorer 9上でWordファイルが開きました(図08~09)。
なお、Content-Dispositionヘッダーによって強制的に表示された通知バーの<開く>ボタンをクリックした場合、関連付けられたアプリケーションであるMicrosoft Wordが起動します。これは同ヘッダーがWebブラウザの動作を強制しているため。動作検証時は気を付けましょう(図10~11)。
今回はMicrosoft Word 2010を前提にしたチューニングですが、異なるバージョンの場合は、HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Word.Document.8キーやWord.Document.6のDWORD値「BrowserFlags」を編集対象としてください。また、Microsoft Excelの場合は、HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Excel.Sheet.8キーや、HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Excel.Sheet.12キーが編集対象となります。
なお、HKEY_CLASSES_ROOT \ Word.Document.12キーにあるDWORD「BrowserFlags」の初期データ値は「2c(10進数:44)」ですので、初期状態に戻す場合は同数値に書き換えてください。
それでは、また次号でお会いしましょう。
阿久津良和(Cactus)