Windows INFファイル (1) 1998.Nov.9  これが出てくるとは思わなかったでしょ?マイナー路線をひた走る私であります(爆)  INFファイルとは何か?:   %winbootdir%\inf、普通の人はC:\Windows\infの下に山ほど見付かるテキスト   ファイル(Infというフォルダがないって?ここは隠し属性が付いてます!)。   つまりPnPでデバイスドライバをロードする際はこのInfが参照されています。   (正確には少し違うが、そこに突っ込めるような人はこの項を読み飛ばして下さい)   で、つまりINFはインストールに使えるような一種のスクリプト言語なのです。   デバイスドライバ屋はPnPをサポートするためにはどうしてもこのINFを書かないと   だめな訳で、いやでも書式を覚えることになります。  では一般の人には役に立たないかと言うと、それはこれを読んだ人が判断して欲しい  です。INFで何ができて何ができないかは次にまとめました。 長所:  1. GUIから実行でき、何も考えなくても勝手にアニメーション表示をする  2. WindowsのシステムフォルダはOSが決めてくれる。つまり、OSのインストール    先がC:\Windowsなのか、A:\Win95なのか、といった区別を気にしないで良い  3. Autoexec.batやConfig.sys、system.iniを編集できる  4. 単なるテキストファイルだし、実行も軽い。Windows 9Xなら標準装備  5. ショートカットも作れるし、レジストリもいじれる  6. コントロールパネルからのアンインストール機能をINFだけで実現できる  7. レジストリエントリは綺麗さっぱり消せるし、自分自身(INF)も消せる  8. その気になればOSの再起動もできる  9. Compress.exeで圧縮したファイルは勝手に展開してくれる気がする(?) 10. 上書きする際、バージョン情報を見て言語が違っていれば警告が出るし、   同じバージョンや同じタイムスタンプのファイルはコピーしない 11. 使用中のファイルを上書きしようとすると、再起動後に自動的に置き換える   ように勝手に細工し、再起動を促すメッセージを出す 短所:  1. 自由度が少ない。任意のメッセージを出す手段すらない。入力手段もない  2. アンインストール時、フォルダを消せない(多分)  3. 単用途。ファイルのコピーというか、インストール用  4. LFNの扱いが中途半端。例えばLFNなフォルダから実行するとまともに動作しない  5. 外部プログラムを実行する手段もないし、条件判断が殆どできない  6. システムのあるドライブ以外(D:とかE:とか)にアクセスする手段がない  7. マニュアルはMSDNのDDKの中にしか(多分)ない 用途:  余り使い道はないかも。が、元々私のサイトの記事ってアレなもんばっかしだから、  コレもソレってことで(何なんだ?)  こんな使い道は如何?   1. プリインストールCDで綺麗さっぱり初期化されたマシンを自分用の環境に     セットアップするINFを用意する → バッチやVBSでもこれは出来ます(事実、私はsetup.batをこの用途のために   作っている)が、よりスマートです   2. DLLやらEXEやらがあちこちのフォルダに分散してビルドされるような開発環境     の時、それらをかき集めてインストールシールドのフォルダにcopyするINF     → …ソフト屋にしか関係ないか。こんなのは   3. 特殊な環境を他人のマシン上に構築し、不必要となったら綺麗さっぱり消し去る     → フォルダを消す必要がありますが、まぁそれはバッチでやるとして(^^;;   少なくともインストールシールドと比べるとお話にならないぐらいINFの方が   軽いです   4. バッチからINFを起動するように記述し、レジストリを操作する → *.REG作ってやる方法だとメッセージボックスが出てうっさいですが、この   方法なら何も出ません(いたずらに応用しないように!)  ちなみにINFの実行はファイルをダブルクリック、ではなくて右クリックして  メニューからインストール(I)を選ぶ、という方法です。とはいえ、これでちゃんと  動作するためにはそれなりにINFを記述してやらなければなりません。  デバイスドライバのPnPインストール用のINFを右クリックしてインストール、と  やっても何も起こらないのはこのためですね。デバイスドライバのPnPインストール  用のINFはコンフィグマネージャから送られてくるPnP IDに反応するようになって  ます。 (EOF)