Windows INFファイル (2) 1998.Nov.11 さて。以下は実例である。が、本物ではない(ご免なさい)。実際に使っているもの を適当に修正したものです。そのため修正ミスがあったら申し訳ない。ちょっと 生な状態で出すのは問題あるので。 このupdate.infが何をするかと言うと、あちこちのフォルダから特定のファイルを コピーしてsetup.kitというフォルダに集める、という動作をする。 具体的には、 C:\usr\cv\program\cv\cv.exe を C:\usr\cv\setup.kit へ C:\usr\cv\program\mdll\ce.dll を C:\usr\cv\setup.kit へ C:\usr\cv\program\psav\psav.dll を C:\usr\cv\setup.kit へ C:\usr\cv\program\ce\ce.dll を C:\usr\cv\setup.kit へ C:\usr\cv\program\ce\ce.lib を C:\usr\cv へ でと。「#」以降が当方の説明。念の為だが、「#」な行はINFとしては文法エラー だからね。試す場合は全部削除すること。説明の便宜上、わざとINFとしてはエラーな 表現で追加しているのですよ。 なお、用語の説明:  セクション: 「[」、「]」で囲まれた名前。ほら、よくあるでしょう? system.iniの[386Enh]セクションに……。とか言うTipsの説明。 そういう名前なんです。*.INIでも*.INFでも。 === Start === # 「;」はINFのコメント。任意の文字列が書ける ; ; Copy files to setup.kit folder ; # 下の2行はおまじない。黙って書く! # Signatureにはもう1つ、許される書き方があるがどっちでも同じなので、 # こっちを推奨しておく。 # この2行で正当なINFファイルであることをOSは認識してくれる [Version] Signature = "$CHICAGO$" # INFファイルを右クリックして「Install」を選んだ時に実行されるアクション。 # CopyFiles以外にも色々できるが、今はCopyFilesだけ! # 「=」以降の文字列は、どのセクションを参照するか?ということ。 # ここでは[libs]、[main]、[dmain]、[psv]なるセクションがあることになっている。 [DefaultInstall] CopyFiles = libs, main, dmain, psv # どっからコピーするねん?という指定。最初の数字は適当で良い。[SourceDisksFiles] # で指定する時に困らないようにする。 # 「=」の後のパラメータは気にしないように。「そいつぁABCディスクにあるはず # だぜ?セットしてるかい?もし持ってなかったらメーカに文句言うんだな?え?」 # ってなこと言われたこと、あるでしょ?あんときに出る文句だから。 # で、最後の「,」以降のパラメータが大事。%Root%とか、%RPG%は[Strings] # セクションを見てね。そして末尾の「mdll」だの「main」は実際のフォルダ名。 # では「%24%」は?これはLDIDと呼ばれるマジックナンバ。別掲するのでそっちを # 見て欲しい。 [SourceDisksNames] 2 = mdll,"",,%24%\%Root%\%PRG%\mdll 4 = main,"",,%24%\%Root%\%PRG%\main 10 = ps,"",,%24%\%Root%\%PRG%\ps # CopyFilesで指定された各セクションで指定されたファイルが実際にはどこに # あるの?という指定。[SourceDisksNames]で適当に付けた数字で場所を指定する。 # ファイル名 = ここにあるぞ # というだけ。 [SourceDisksFiles] ce.dll = 2 ce.lib = 2 cv.exe = 4 psav.dll = 10 # CopyFilesで指定されたファイルをどこにコピーするの?という指定。 # [libs]で指定されたファイルは特定の場所に。それ以外はDefaultDestDirに # コピーするのだ。 # [SourceDisksNames]の時と、同じ「24」のLDIDを指定する文法が違うのは何故? # とかは聞かないように。文句を言う先はMSであり、私ではないぞよ(^^; [DestinationDirs] libs = 24,%Root%\%PRG% DefaultDestDir = 24,%Root%\setup.kit # CopyFilesで指定された[libs]セクション。ce.libをコピーせよ、という指示 [libs] ce.lib # CopyFilesで指定された[dmain]セクション。ce.dllをコピーせよ、という指示 [dmain] ce.dll # CopyFilesで指定された[main]セクション。cv.exeをコピーせよ、という指示 [main] cv.exe # CopyFilesで指定された[psv]セクション。psav.dllをコピーせよ、という指示 [psv] psav.dll # 単なる文字列の置き換え。「%Root%」は、実は「usr\cv」である、とか、 # 「%PRG%」は「Programs」である、という仕組み # Driveは「C:」?「A:」?あぁ。「D:」にしたい時は?という疑問はLDID.TXTを # 参照のこと。どうもブートドライブだけしか指定できないみたい。 # つまり、PC/ATなら「C:」だけ。PC-98なら「A:」も可能。「D:」なんてのは # まともな方法では指定できなさそう(T_T) [Strings] Root = "usr\cv" PRG = "Programs" ; EOF === End === (EOF)