AUTORUN.INFの仕組みとコマンドの意味などが知りたい。また資料があれば教えてください。
AUTORUN.INFは,基本的にはOSがCD-ROMの挿入を検知したときに,自動的にこのファイルを検索し,実行するようになっています。
実行する内容は,すべてAUTORUN.INFに記述されているので,自分でこれを書いてCD-ROMのルートフォルダに置くことで実現することもできます。実際,自分で作成したCD-Rでの実行も可能です。
AUTORUN.INFの書き方ですが,これはサンプルを使って説明しましょう。
まず,ファイルの記述方法どおり,ファイルの先頭に[autorun]と書きます。
2行めの「open=」ですが,ここには自動実行するプログラムのファイル名を記述します。サンプルではAUTORUN.INFが置かれているルートフォルダにあるtestというフォルダの中のNOTEPAD.EXEを実行するように指定しています。
3行めの「icon=」では,同じようにしてドライブの部分に表示するアイコンの指定をしています。ここでは,NOTEPAD.EXEのアイコンを表示するように指定していますが,ビットマップだけの.ICOファイルを指定することもできます。
4,5行めの「shell\autorunview\command=」と「shell\autorunview=」ですが,これはドライブを右クリックしたときに表示されるメニューに項目を表示したい場合に使います。「shell\autorunview\command=」の部分に,選択したときに実行したいコマンドを記述し,「shell\特定の文字列=」の後ろに,メニューに表示するためのテキストを記述します。
AUTORUN.INFはCD-ROMでしか試せないため,そのままではデバッグするのがとても大変です。そこで,レジストリのHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun(DWORD)の値を変更すると,CD-ROM以外のドライブでも実行が可能になり,デバッグができます。
筆者の環境では,ここが9Dになっていました。これを,例えば91に変更すればフロッピーディスクでのAUTORUN.INFの実行が可能になります。なお,Windows NTでは変更後にエクスプローラを立ち上げ直す必要があります。つまり一度ログオフをしなくてはいけません。なお,レジストリの値の内容は,図のとおりです。
なおマイクロソフトの公式な資料としては,AUTORUN.INFの書き方に関してはhttp://www.microsoft.com/win32dev/uiguide/uigui276.htmに,レジストリの設定に関してはhttp://premium.microsoft.com/msdn/library/sdkdoc/directx/autoplay_4xfd.htm(ただし登録が必要)にそれぞれ説明があります。
(恣岡 悄)
パーミッションを変更できるFTPツールも存在する