今日のIT小技―autorun+スクリプト入りHTML

JavaScriptやActiveXなどアクティブスクリプトを含んだHTMLファイルがある場合、それをInternet Explorer(IE)で開こうとすると次のように警告を受けることがあります。

sp2_warn1 クリックすると拡大します。

これって、いきなり出るとびっくりしますよね。

このまま「はい」を選ぶと、いちおうはページが表示されますが、ページのトップをよく見ると次のように表示されており、アクティブスクリプトは無効になっていることがわかります。これだと、たとえばJavaScriptが組み込まれているページでは、スクリプトは無視されていますので最悪何も表示されないことがあります。

sp2_warn2 クリックすると拡大します。

これは、セキュリティを高めるためにWindows XP Service Pack 2で実装された機能なのですが、Internet Explorerでしか起きません。Firefoxなど独自のレンダリングエンジンを積んだブラウザでは、このようなことはありません。SleipnirはIEコンポーネントを使っていますので、問題の起き方はIEと同じになります。上のメッセージに対して、クリックすれば、スクリプトが有効になって再表示されますが、安全のためとはいえ、いささかの手間がかかるのは否めません。

これらのメッセージは、基本的には「インターネット上のページ」から「ローカルにあるページ」を開こうとしたとき、そこにアクティブスクリプトがあると警告されます。ですが実際はCD-ROM上のAutorunプログラムから、アクティブスクリプトを含むHTMLファイルを開こうとした場合にも出るようです。自前のものなど、最初から安全とわかっている(少なくとも意図的な危険要素を入れていない)スクリプトを含むページを開こうとしただけでこう出たりするので、結構目障りだっりします。

今回の記事では、配布するCDなどにHTMLファイルを入れておき、それをAutorunで自動的に開かせたいが、フリーソフトウェアなどでよくあるAutorun用のプログラムを使うとこういう警告が出てしまう、という問題を解決することにしましょう(長い、くどい、わかりにくいね)。

このような問題の解決方法には、大きく2つあるようです。

  1. 「インターネットオプション」の設定を変更し、このようなチェックを無効にしてしまう。
  2. チェックに引っかからないようにHTMLファイルを開くようにする。

1.は、「インターネットオプション」の「詳細設定」タブにおいて、次の2つの項目にチェックを入れるというものです。両方入れれば、ハードディスク上、CD-ROM上、どちらもチェックされなくなります。

sp2_warn3 クリックすると拡大します。

この方法は、確実でわかりやすいものですが、今回のように誰かにCDを配布するときには、こういう設定をしてもらう必要があり、しかもセキュリティレベルが下がるとあって、あまりお勧めできません。

ですので、2.の方法を試してみましょう。単にHTMLファイルを開かせたいだけなら、わざわざAutorun用のプログラムを入手して使う必要はありません。ですが、以下のように単純にAUTORUN.INFファイルを作ってもうまく動きません。

[autorun]
OPEN=index.html

OPENエントリには、実行できるファイルを指定する必要があります。そこで、以下のように書いてやります。

OPEN=rundll32.exe url.dll,FileProtocolHandler index.html

rundll32.exeとは、DLL(ダイナミックリンクライブラリ)を呼び出すプログラムです。url.dll,FileProtocolHandlerはそのパラメータで、url.dllが呼び出すDLLファイル、FileProtocolHandlerはそのエントリ(関数)です。双方とも、Windowsに標準で含まれています。この場合、URIスキーマをFile:であるとしてindex.htmlを開け、という意味になります。この場合、冒頭のような警告は出ません。すなわち、Explorerからindex.htmlを開いたのと同じになります。

コメント