バナー

セットアップ情報ファイル (.inf) の定義

基本的な .inf ファイルのセクションには、次のものがあります。複雑な .inf ファイルの場合は、このほかにもセクションを追加できます。下の説明で太字になっているのは予約語のセクション名です。斜体になっているのは任意に指定できるセクション名です。

Version .inf ファイルの有効性をチェックするための基本的なバージョン情報。
[DefaultInstall] 既定で実行されるインストール セクション。このセクションでは、コピーまたは削除の対象となるファイルを指定するセクションや、レジストリまたは .ini ファイルの更新を指定するセクションなど、ほかのセクションへの参照を定義します。
[OtherInstall] [DefaultInstall] セクションと同じ形式で指定します。ただし、明示的に呼び出した場合にのみ実行されます。コンポーネントのアンインストール方法の定義などに使用します。
[DestinationDirs] ファイルのコピー、削除、または名前変更を行うハード ディスク上のディレクトリ (¥Windows や ¥Windows¥System など) を指定します。
[FileCopy/Delete/RenameSection(s)] コピー、削除、または名前変更の対象となるファイルを指定します。
[RegistryUpdateSection(s)] レジストリ キーの追加または削除を指定します。
[IniFileUpdateSection(s)] .ini ファイルの更新を指定します。このセクションには、リンクを作成します。
[SourceDisksNames] ファイルが格納されているディスクを指定します。
[SourceDisksFiles] 各ファイルが格納されているディスクのリストを指定します。
[Strings] 使用するローカライズ文字列のリストを指定します。
ファイルの先頭に戻る

Version セクション

[Version]
Signature="$Chicago$"
LayoutFile=filename.inf
すべての Windows .inf ファイルに適用する標準ヘッダーを定義します。Windows で認識されるどのクラスのデバイスについても、署名 (Signature) には $Chicago$ を指定する必要があります。これ以外の値を指定した .inf ファイルは、.inf ファイルとして処理されません。

署名文字列では、大文字と小文字は区別されません。つまり、$Chicago$ の代わりに $CHICAGO$ と指定することもできます。

file name .inf
コンポーネントのインストールに必要なレイアウト情報 (コピー元のディスクとファイルに関する情報) を格納する .inf ファイルの名前を指定します。この行は省略可能です。省略する場合は、SourceDisksNames セクションおよび SourceDisksFiles セクションをこの .inf ファイル内に定義する必要があります。

一般的な Version セクションの例を次に示します。

Version
Signature="$CHICAGO$"
ファイルの先頭に戻る

インストール セクション

[install-section-name]

Copyfiles= file-list-section[,<file-list-section>]...
Renfiles= file-list-section[,file-list-section]...
Delfiles= file-list-section[,file-list-section]...
UpdateInis= update-ini-section[,update-ini-section]...
UpdateIniFields= update-inifields-section[,update-inifields-section]...
AddReg= add-registry-section[,add-registry-section]...
DelReg= del-registry-section[,del-registry-section]...
Ini2Reg= ini-to-registry-section[,ini-to-registry-section]...
UpdateCfgSys= update-config-section
UpdateAutoBat=update-autoexec-section

.inf ファイル内でコンポーネントのインストール情報が定義されているほかのセクションを示します。

インストール セクションでは、上の構文に示した項目タイプのうち、必要なものだけを使用できます。使用する項目タイプには、.inf ファイル内のセクション名を指定する必要があります。例外として、CopyFiles 項目の場合は、セクション名を指定する代りに @ 記号を付けてファイル名を指定し、個別のファイルをコピーすることもできます。セクション名は、印刷可能文字で記述する必要があります。

インストール セクションに使用できる項目タイプ は 1 つだけです。1 つの項目に複数のセクション名を指定する場合は、セクション名をカンマで区切る必要があります。

install-section-name
インストール セクションに [DefaultInstall] という名前を付けると、.inf ファイルを右クリックし、[インストール] をクリックしたときに、そのインストール セクションが実行されます。また、Cabpack ウィザードで .inf ファイルをセットアップ オプションとして選択したときにも、このセクションが実行されます。

一般的なインストール セクションの例を次に示します。この例では、CopyFiles 項目と AddReg 項目を使用して、インストール対象のファイルに関する情報が定義されているセクションを指定します。

[MyApplication]
Copyfiles=MyAppWinFiles, MyAppSysFiles, @SRSutil.exe
AddReg=MyAppRegEntries

上の例では、[MyApplication] セクションの名前を [DefaultInstall] に変更して、inf ファイルを右クリックして [インストール] をクリックしたときに、このセクションが実行されるようにしています。

CopyFiles 項目では、特殊な表記法を使用して、コピー対象の各ファイルを直接指定することができます。個々のファイルを直接指定するには、ファイル名の直前に @ 記号を付けます。この方法で指定したファイルは、DestinationDirs セクションで定義した DefaultDestDir にコピーされます。個別のファイルを直接指定してコピーする例を次に示します。

CopyFiles=FileSection1,@myfile.txt,@anotherfile.txt,LastSectionName

ファイルの先頭に戻る

ファイルのコピー セクション (CopyFiles)

[CopyFiles-section-name]
destination-file-name[, source-file-name][,temporary-file-name][,flag]
[destination-file-name[,source-file-name][, temporary-file-name]][,flag]

コピー元ディスクからコピー先ディレクトリにコピーするファイル名のリストを指定します。各ファイルのコピー元ディスクとコピー先ディスクは、.inf ファイル内のほかのセクションで指定します。file-list-section name に指定するセクション名は、インストール セクションの CopyFiles 項目で定義する必要があります。

インストール セクション内で CopyFiles 項目を使う場合は、CopyFiles セクションを作成せずに個々のファイルを直接指定することもできます。個々のファイルを直接指定してコピーするには、ファイル名の先頭に @ 記号を付けます。CopyFiles タイプ項目で @ 記号を使用する例については、インストール セクションの説明を参照してください。ただし、この方法で個々のファイルをコピーする場合は、コピー元とコピー先のファイル名が同一である必要があり、一時ファイルを使用することはできません。

destination-file-name
コピー先ファイルの名前。コピー元ファイル名を省略すると、コピー先ファイル名はコピー元ファイル名としても使用されます。

source-file-name
コピー元ファイルの名前。コピー元ファイル名とコピー先ファイル名が同じ場合は、コピー元ファイル名を省略できます。

temporary-file-name
ファイルのコピー操作に使用する一時ファイルの名前。一時ファイル名を指定すると、インストーラでは、コピー元ファイルをその名前のファイルにコピーします。一時ファイル名は、この次にオペレーティング システムが起動したときにコピー先ファイル名に変更されます。この機能は、コピー先ファイルが現在開かれているか、または Windows で使用されている場合に使用できます。

flag
インストール処理中に特殊な操作を実行するための省略可能なパラメータ。複数の操作を実行する場合は、各操作に対応する値を加算して、一連の操作用のフラグを作成します。使用できる有効なフラグは、次のとおりです。

1 CopyFiles の場合、ユーザーがファイルをスキップしようとしたときに警告を表示します。
1 DelFiles の場合、 ファイルが使用中であれば、実行できない削除操作を Wininit.ini に入れます。このようにしないと、使用中のファイルは削除されません。
2 セットアップに必要なファイル操作。 ユーザーがこのファイルをスキップできないようにします。
4 バージョン チェックを無視し、常にファイルをコピーします。コピー先のファイルの方が新しくても、上書きされます。
8 強制的にファイル名を変更します。セットアップでは、このファイルを使用中のファイルと同様に扱います。これは、ユーザーのコンピュータに同じファイルが存在する場合にのみ該当します。
16 ファイルがコピー先に既に存在する場合は、コピーを行いません。
32 バージョンの不一致を示すダイアログ ボックスを表示せず、コピー先のファイルの方が新しい場合は上書きしません。

3 つのファイルをコピーする例を次に示します。

[CopyTheseFilesSec]
file11 ; copies file11
file21, file22, file23 ; copies file22, temporarily naming it file23
file31, file32 ; copies file32 to file31

この例では、すべてのコピー元ファイル名が SourceDisksFiles セクションで定義されており、SourceDisksFiles セクションで指定されている論理ディスク番号が SourceDisksNames セクションで定義されていることを前提としています。これらの情報は、Layout.inf ファイルで定義することもできます。

ファイルの先頭に戻る

ファイルの名前変更セクション (RenFiles)

[rename-files-section-name]
new-file-name, old-file-name
.
.
名前を変更するファイルのリストを指定します。セクション名は、.inf ファイルのインストール セクションの Renfiles 項目で定義する必要があります。

new-file-name
変更後のファイル名。

old-file-name
変更前のファイル名。

次の例では、file42 を file41 に、file52 を file51 に、file62 を file61 にそれぞれ変更します。

[RenameOldFilesSec]
file41, file42
file51, file52
file61, file62

この例では、変更前のファイル名 (file42、file52、および file62) がすべて SourceDisksFiles セクションで定義されており、SourceDisksFiles セクションで指定されている論理ディスク番号が SourceDisksNames セクションで定義されていることを前提としています。

ファイルの先頭に戻る

ファイルの削除セクション (DelFiles)

[ file-list-section]
file-name[,,,flag]
.
.
DelFiles セクションには、削除するファイルの名前のリストを指定します。file-list-section に指定するセクション名は、インストール セクションの Delfiles 項目で定義する必要があります。

file-name
削除するファイルを指定します。

flag
インストール時にファイルが使用中の場合に、ファイルを強制的に削除するように指定するための省略可能なパラメータ。コンピュータが再起動されるまでファイルの削除操作を待ち行列に入れるように Windows に指示するには、flag パラメータを 1 に設定します。flag パラメータを 1 に設定したファイルが使用中のため削除できない場合は、デバイスのインストールが完了してからコンピュータが再起動されます。

file-name パラメータで指定したファイルに対して flag パラメータを 1 に設定していない場合は、DelFiles セクションの実行時にそのファイルが使用中の場合には、そのファイルはコンピュータから削除されません。

3 つのファイルを削除する例を次に示します。

[DeleteOldFilesSec]
file1
file2
file3

ファイルの先頭に戻る

.ini ファイルの更新セクション (UpdateInis)

[ update-ini-section-name]
ini-file, ini-section, [old-ini-entry], [new-ini-entry], [flags]
.
.
指定された .ini ファイルで、個々のエントリ全体の置換、削除、または追加を行います。update-ini-section-name に指定するセクション名は、.inf ファイルのインストール セクションの UpdateInis 項目で定義する必要があります。

ini-file
変更するエントリが含まれている .ini ファイルの名前。.ini ファイルの名前の指定方法については、下の説明を参照してください。

ini-section
変更するエントリが含まれている セクションの名前。

old-ini-entry
省略可能。通常は、Key=Value の形式で指定します。

new-ini-entry
省略可能。通常は、Key=Value の形式で指定します。キーと値のどちらかに、置換可能な文字列を指定できます。たとえば、.inf ファイルの Strings セクションで %String1% を置換する値を定義し、new-ini-entry パラメータでキーと値のどちらかに %String1% を指定することができます。

flags
省略可能な操作フラグ。次の値のいずれかを指定できます。

0 既定値。.ini ファイルのエントリのうち、old-ini-entry と同じキーが含まれているエントリがあれば new-ini-entry に置換します。この設定では、.inf ファイルのエントリと old-ini-entry パラメータの間でキーが一致しているだけでよく、各エントリの値は無視されます。

.ini ファイルに new-ini-entry を無条件で追加するには、old-ini-entry を Null に設定します。.ini ファイルから old-ini-entry を無条件で削除するには、new-ini-entry を Null に設定します。

1 .ini ファイルのエントリのうち、キーと値の両方が old-ini-entry に一致するエントリがあれば new-ini-entry に置換します。この設定では、old-ini-entry パラメータと .ini ファイルのエントリの間でキーと値の両方が一致していなければなりません。フラグを 0 に設定した場合にはキーが一致するかどうかだけがチェックされましたが、この場合はキーと値の両方がチェックされることに注意してください。
2 old-ini-entry パラメータと同じキーのエントリが .ini ファイルに含まれていなければ、置換操作を行いません。

old-ini-entry パラメータと同じキーのエントリが .ini ファイル内に存在し、また、new-ini-entry パラメータと同じキーのエントリが .ini ファイル内に存在する場合は、後者のエントリが削除され、前者のエントリのキーが new-ini-entry パラメータのキーに置換されます。old-ini-entry パラメータと同じキーのエントリが .ini ファイル内に存在し、new-ini-entry パラメータと同じキーのエントリが .ini ファイル内に存在しない場合は、新しいエントリが .ini ファイルに追加されます。

この新しいエントリは、old-ini-entry パラメータと同じキーのエントリの値と new-ini-entry パラメータのキーを組み合わせたものとなります。

old-ini-entry パラメータと .ini ファイル エントリの間では、値はチェックされず、キーが一致するかどうかだけがチェックされます。

3 old-ini-entry パラメータと .ini ファイル エントリの間でキーと値の両方が一致するかどうかをチェックします。それ以外は、2 に設定した場合と同じ処理を行います。

キーおよび値を指定するときは、アスタリスク (*) をワイルドカード文字として使用できます。ワイルドカードは正しく解釈されます。

ini-file 名には、文字列または文字列キーを指定できます。.inf ファイル内の Strings セクションで定義した値を strkey とすると、文字列キーは %strkey% の形式をとります。いずれの場合も、有効なファイル名を指定する必要があります。

名前にはファイルが格納されているフォルダの名前を含める必要がありますが、フォルダ名は、実際の名前ではなく論理ディレクトリ識別子 (LDID) として指定する必要があります。LDID は、インストール時にインストーラによって実際の名前に置換されます。

定義済みの識別子のいずれか、または DestinationDirs セクションで定義した識別子を ldid とすると、LDID は %ldid% の形式をとります。定数 LDID_BOOT および LDID_BOOTHOST の置換時には、パスに円記号 (¥) が付加されます。たとえば、LDID_BOOT は C:¥ などに置換されます。ただし、.inf ファイル内で円記号 (¥) を使用するかどうかは任意です。たとえば、起動ドライブ上の BOOT.ini を参照する場合は、"%30%boot.ini" と指定することも、"%30%¥boot.ini" と指定することもできます。

.ini ファイルの更新セクションに指定した個々の項目の例を次に示します。

%11%¥sample.ini, Section1,, Value1=2 ; adds new entry
%11%¥sample.ini, Section2, Value3=*, ; deletes old entry
%11%¥sample.ini, Section4, Value5=1, Value5=4 ; replaces old entry

.inf ファイル内の .ini ファイルを更新するタイプのセクションで、SYSTEM.ini の Boot セクションを操作する項目の一覧を下に示します。"comm.drv=comm.drv" エントリを Boot セクションに追加するときには、.inf ファイル項目の flags パラメータによる条件指定が適用されます。ただし、"comm.drv=*vcoscomm.drv" エントリまたは "comm.drv=*r0dmdcom.drv" エントリが Boot セクション内に既に存在する場合は、既存のエントリが維持され、"comm.drv=comm.drv" エントリは .ini ファイルに追加されません。つまり、下に示す 4 つの .inf ファイル エントリを実行すると、.ini ファイル内の Boot セクションの "comm.drv=" エントリは、"comm.drv=*vcoscomm.drv"、"comm.drv=*r0dmdcom.drv"、"comm.drv=comm.drv" のいずれかになります。

system.ini, boot, "comm.drv=*vcoscomm.drv","‾CommDrvTemp‾=*", 3
system.ini, boot, "comm.drv=*r0dmdcom.drv","‾CommDrvTemp‾=*", 3
system.ini, boot,,"comm.drv=comm.drv"
system.ini, boot, "‾CommDrvTemp‾=*","comm.drv=*", 3

ファイルの先頭に戻る

.ini フィールドの更新セクション (UpdateIniFields)

[ update-inifields-section-name ]
ini-file, ini-section, profile-name, [old-field], [new-field],[flags]
.
.
指定された .ini エントリに対して、値のフィールドの置換、削除、または追加を行います。.ini ファイルを更新するタイプのセクションとは異なり、このタイプのセクションでは、.ini ファイル内の個々のエントリの全体ではなく、一部に対して、置換、追加、または削除を実行します。セクション名 update-inifields-section-name は、.inf ファイル内のインストール セクションの UpdateIniFields 項目で定義する必要があります。

ini-file
変更対象のエントリが含まれている .ini ファイルの名前。.ini ファイル名の指定方法については、.ini ファイルを更新するタイプのセクションの説明を参照してください。

ini-section
変更対象のエントリが含まれている .ini ファイル セクションの名前。

profile-name
変更対象のエントリ名。

old-field
削除するフィールド値。

new-field
既存のフィールド値がない場合に追加するフィールド値。

flags
old-field パラメータおよび new-field パラメータでアスタリスク (*) をワイルドカード文字として扱うかどうかを指定したり、.ini ファイル エントリの末尾に新しいフィールドを追加するときに使う区切り文字を指定します。次の値のいずれかを指定できます。

意味
0 (既定値)。フィールドを比較するときに、アスタリスク (*) をワイルドカード文字ではなくリテラル文字として扱います。エントリに新しいフィールドを追加するときに、スペース ( ) を区切り文字として使います。
1 フィールドを比較するときに、アスタリスク (*) をワイルドカード文字として扱います。エントリに新しいフィールドを追加するときに、スペース ( ) を区切り文字として使います。
2 フィールドを比較するときに、アスタリスク (*) をワイルドカード文字ではなくリテラル文字として扱います。エントリに新しいフィールドを追加するときに、カンマ (,) を区切り文字として使います。
3 フィールドを比較するときに、アスタリスク (*) をワイルドカード文字として扱います。エントリに新しいフィールドを追加するときに、カンマ (,) を区切り文字として使います。

変更後には .ini ファイル内の既存のコメントが実際の設定に対応しなくなる可能性があるため、対象となる行に付加されているコメントは削除されます。この .ini ファイル行に含まれるフィールドを処理するときは、スペース、タブ、およびカンマがフィールド区切り文字として使用されます。ただし、行の末尾に新しいフィールドを追加するときには、スペースが区切り文字として使われます。

ファイルの先頭に戻る

レジストリへの追加セクション (AddReg)

[ add-registry-section]
reg-root-string, [subkey], [value-name], [flag], [value]
[reg-root-string, [subkey], [value-name], [flag], [value]]
.
.
レジストリにサブキーまたは値の名前を追加します。必要に応じて値を設定できます。add-registry-section に指定するセクション名は、インストール セクションの AddReg タイプ項目で定義する必要があります。

reg-root-string
ルートとなるレジストリ キーの名前。次の値のいずれかを指定できます。

HKCR: ルート キーとして HKEY_CLASSES_ROOT を指定します。
HKCU: ルート キーとして HKEY_CURRENT_USER を指定します。
HKLM: ルート キーとして HKEY_LOCAL_MACHINE を指定します。
ルート キーとして HKEY_USERS を指定します。
HKR: GenInstallEx に渡したキーをルート キーとして指定します。

subkey
省略可能。設定するサブキーを指定します。key1¥key2¥key3.... の形式をとります。このパラメータは、置換可能な文字列として表すことができます。たとえば、このパラメータに %Subkey1% という置換可能文字列を指定し、%Subkey1% に置き換わる実際の文字列を .inf ファイルの Strings セクションに定義することができます。

value-name
省略可能。subkey の値の名前を指定します。文字列型の値の場合、the value-name パラメータを省略すると、subkey パラメータで指定したサブキーの値は Null に設定されます。なお、value-name パラメータは、置換可能な文字列として表すことができます。たとえば、このパラメータに %Valname1% という置換可能文字列を指定し、%Valname1% に置き換わる実際の文字列を .inf ファイルの Strings セクションに定義することができます。

flag
省略可能。値の型を指定すると共に、既存のレジストリ キーを置き換えるかどうかを指定します。

意味
0 (既定値)。ANSI 文字列の値を指定します。既存のキーを置き換えます。
1 16 進値を指定します。既存のキーを置き換えます。
2 ANSI 文字列の値を指定します。既存のキーを置き換えません。
3 16 進値を指定します。既存のキーを置き換えません。

value
省略可能。設定する値を指定します。ANSI 文字列か、または Intel フォーマットの 16 進値を指定できます。バイナリ値を含む項目の長さが 1 行あたり 128 バイトの制限を超える場合は、円記号 (¥) で改行できます。strkey% の形式の文字列キーも指定できます。 strkey は、.inf ファイルの Strings セクションで定義する必要があります。行の中で % をリテラル文字として使うには、「%%」と入力します。

少なくとも 2 つのフィールドが必要ですが、いずれかを Null にすることができます。したがって、この形式を使うときは、少なくとも 1 つのカンマが必要です。

次に示す AddReg タイプのセクションの例では、2 つの項目を指定して、2 つの値の名前をレジストリに追加します。%25% は、コンピュータ上の Windows フォルダに展開されます。

[MyAppRegEntries]
HKLM,Software¥MyApp,ProgramName,,"My Application"
HKLM,Software¥MyApp,"Program Location",,"%25%¥MyApp.exe"

ファイルの先頭に戻る

レジストリからの削除セクション (DelReg)

[ del-registry-section]
reg-root-string, subkey, [value-name]
[reg-root-string, subkey, [value-name]]
.
.
レジストリからサブキーまたは値の名前を削除します。del-registry-section に指定するセクション名は、インストール セクションの DelReg 項目で定義する必要があります。

reg-root-string
ルートとなるレジストリ キーの名前。次の値のいずれかを指定できます。

HKCR: ルート キーとして HKEY_CLASSES_ROOT を指定します。
HKCU: ルート キーとして HKEY_CURRENT_USER を指定します。
HKLM: ルート キーとして HKEY_LOCAL_MACHINE を指定します。
ルート キーとして HKEY_USERS を指定します。
HKR: GenInstallEx に渡したキーをルート キーとして指定します。

subkey
削除するサブキーを指定します。key1¥key2¥key3... の形式をとります。このパラメータは、置換可能な文字列として表すことができます。たとえば、このパラメータに %Subkey1% という置換可能文字列を指定し、%Subkey1% に置き換わる実際の文字列を .inf ファイルの Strings セクションに定義することができます。

value-name
省略可能。subkey の値の名前を指定します。なお、value-name パラメータは、置換可能な文字列として表すことができます。たとえば、このパラメータに %Valname1% という置換可能文字列を指定し、%Valname1% に置き換わる実際の文字列を .inf ファイルの Strings セクションに定義することができます。

このタイプのセクションには、任意の数の項目を指定できます。それぞれの項目では、サブキーまたは値の名前を 1 つずつレジストリから削除します。

レジストリへの .ini ファイル追加セクション (Ini2Reg)

[ ini-to-registry-section]
ini-file, ini-section, [ini-key], reg-root-string, subkey[,flags]
.
.
.ini ファイル内の行やセクションをレジストリに移動し、指定されたレジストリ キーの下層でレジストリ エントリの作成または置換を行います。ini-to-registry-section に指定するセクション名は、.inf ファイルのインストール セクションの Ini2Reg 項目で定義する必要があります。

ini-file
コピーするキーが含まれている .ini ファイルの名前。.ini ファイル名の指定方法については、.ini ファイルの更新セクションの説明を参照してください。

ini-section
コピーするキーが含まれている .ini ファイル セクションの名前。

ini-key
レジストリにコピーする .ini ファイル キーの名前。ini-key を省略すると、セクション全体がレジストリ キーに転送されます。

reg-root-string
ルートとなるレジストリ キーの名前。次の値のいずれかを指定できます。

HKCR: ルート キーとして HKEY_CLASSES_ROOT を指定します。
HKCU: ルート キーとして HKEY_CURRENT_USER を指定します。
HKLM: ルート キーとして HKEY_LOCAL_MACHINE を指定します。
ルート キーとして HKEY_USERS を指定します。
HKR: GenInstallEx に渡したキーをルート キーとして指定します。

subkey
値の転送先のサブキーを指定します。key1¥key2¥key3... の形式をとります。

flags
レジストリに転送した .ini キーを .ini ファイルから削除するかどうかを指定すると共に、レジストリ内の既存の値を上書きするかどうかを指定します。次の値のいずれかを指定できます。

意味
0 (既定値)。レジストリに .ini エントリの情報を移動した後、.ini エントリを .ini ファイルから削除しません。対応するレジストリ サブキーが既に存在する場合は、現在の値を上書きしません。
1 レジストリに .ini エントリの情報を移動した後、.ini エントリを .ini ファイルから削除します。対応するレジストリ サブキーが既に存在する場合は、現在の値を上書きしません。
2 レジストリに .ini エントリの情報を移動した後、.ini エントリを .ini ファイルから削除しません。対応するレジストリ サブキーが既に存在する場合は、現在の値を .ini ファイル エントリの値で上書きします。
3 レジストリに .ini エントリの情報を移動した後、.ini エントリを .ini ファイルから削除します。対応するレジストリ サブキーが既に存在する場合は、現在の値を .ini ファイル エントリの値で上書きします。
たとえば、Win.ini ファイルに次のようなエントリがあると想定します。
[Windows]
CursorBlinkRate=15

Control Panel¥Desktop キーの下層に CursorBlinkRate サブキーが存在しない場合は、Ini File to Registry セクションの次の項目をレジストリへの .ini ファイル追加セクション内に指定すると、Control CursorBlinkRate サブキーが作成され、その値が 15 に設定されます。WIN.ini ファイル内の .ini エントリはそのまま維持されます。

win.ini,Windows,CursorBlinkRate,HKCU,"Control Panel¥Desktop"

CursorBlinkRate サブキーが既に存在している場合は、このサブキーの値が 15 に設定され、WIN.ini ファイル内の .ini エントリはそのまま維持されます。

Config.sys の更新セクション (UpdateCfgSys)

[ update-config-section]
Buffers=legal-dos-buffer-value
DelKey=key
DevAddDev=driver-name,configkeyword[,flag][,param-string]
DevDelete=device-driver-name
DevRename=current-dev-name,new-dev-name
Files=legal-dos-files-value
PrefixPath=ldid[,ldid]
RemKey=key
Stacks=dos-stacks-values

Config.sys ファイルに対して、コマンドの追加、削除、または名前変更を行います。update-config-section-name に指定するセクション名は、.inf ファイルのインストール セクションの UpdateConfigSys 項目で定義する必要があります。

上の構文に示した項目のうち、必要なものだけを使用できます。Config.sys の更新セクションでは、DevRenameDevDeleteDevAddDevDelKey、および RemKey の各項目は必要に応じて繰り返し指定できますが、BuffersFiles、および Stacks の各項目は 1 回しか指定できません。Config.sys の更新セクションを処理するとき、インストーラでは、まず最初に DevRenames 項目が処理され、次に DevDelete 項目、最後に DevAddDev 項目が処理されます。Config.sys の更新セクションに指定できる各項目タイプの構文と意味については、このトピックで後述します。

Buffers 項目

Buffers=legal-dos-buffer-value
ファイル バッファ数を設定します。Stacks 項目の場合と同様に、インストーラでは、既存の値を指定値と比較し、2 つの値のうち大きい方の値をファイル バッファ数として適用します。

legal-dos-buffers-value
MS-DOS でサポートされている有効範囲内の Buffers 値。

DelKey 項目

DelKey=key
指定したキーに一致する Config.sys コマンドを Config.sys ファイル内でコメント アウトします。たとえば、

DelKey=Break

と指定すると、Break=on コマンドが Config.sys ファイル内にコメント アウトされます。

DelKey 項目は、RemKey 項目と同じ結果を生成します。DelKey 項目と RemKey 項目は、.inf ファイルのセクション内で必要に応じて繰り返し指定できます。

key
コメント アウトする Config.sys コマンドのキー。

DevAddDev 項目

DevAddDev=driver-name,configkeyword[,flag][,param-string]
device コマンドまたは install コマンドを CONFIG.SYS ファイルに追加します。

driver-name
追加するドライバまたは実行可能ファイルの名前。インストーラでは、拡張子が .sys または .exe のファイル名を有効なファイル名として受け付けます。

configkeyword
コマンド名。device または install のいずれかです。

flag
コマンドの位置を示す省略可能なフラグ。0 に設定すると、コマンドはファイルの末尾に配置されます。1 に設定すると、コマンドはファイルの先頭に配置されます。フラグを省略すると、既定値の 0 が適用されます。

param-string
省略可能なコマンド パラメータ。デバイス ドライバまたは実行可能ファイルでサポートされているパラメータを指定する必要があります。

DevDelete 項目

DevDelete=device-driver-name
指定したファイル名が含まれている行を Config.sys ファイルから削除します。

device-driver-name
ファイルまたはデバイス ドライバの名前。インストーラでは、この名前が含まれる行を Config.sys ファイル内で検索し、見つかった行を削除します。MS-DOS の Config.sys では暗黙的なファイル名拡張子はサポートされていないため、device-driver-name に指定する各ファイル名には拡張子を明示的に付加する必要があります。

Config.sys の更新セクションの DevDelete 項目の例を次に示します。この例では、サンプル Config.sys ファイルから行 1 と行 3 を削除し、行 2 は削除しません。

DevDelete=filename.sys
;; lines in Config.sys
Device=Filename.sys ;; line #1
Install=Filename.exe ;; line #2
Device=Filename.sys /d:b800 /I:3 ;; line #3

DevRename 項目

DevRename=current-dev-name,new-dev-name
Config.sys ファイル内のデバイス ドライバの名前を変更します。

current-dev-name
名前変更の対象となるデバイス ドライバまたは実行可能ファイルの名前。インストーラでは、Config.sys ファイル内の行のうち、右側にこの名前が指定されている device コマンドまたは install コマンドを検索します。

new-dev-name
ドライバまたは実行可能ファイルの新しい名前。

Files 項目

Files=legal-dos-files-value
Config.sys ファイル内の Files (同時に開くことができるファイル数) の値を設定します。Stacks 項目の場合と同様に、インストーラでは、既存の値を指定値と比較し、2 つの値のうち大きい方の値を、同時に開くことのできるファイル数の上限として適用します。

legal-dos-files-value
MS-DOS でサポートされている有効範囲内の Files 値。

PrefixPath 項目

PrefixPath=ldid[,ldid]...
指定した LDID に関連付けられているパスを path コマンドに追加します。

ldid
定義済みの LDID のいずれかか、.inf ファイル内で定義した新しい値を指定します。定義済みの LDID の値の一覧については、DestinationDirs セクションの説明を参照してください。

RemKey 項目

RemKey=key
指定したキーに一致する Config.sys コマンドを Config.sys ファイル内でコメント アウトします。たとえば、

RemKey=Break

と指定すると、Break=on コマンドが Config.sys ファイル内にコメント アウトされます。

RemKey 項目は、DelKey 項目と同じ結果を生成します。RemKey 項目と DelKey 項目は、.inf ファイルのセクション内で必要に応じて繰り返し指定できます。

key
コメント アウトする Config.sys コマンドのキー。

Stacks 項目

Stacks=dos-stacks-values
Config.sys ファイル内の Stacks (スタックの数とサイズ) の値を設定します。インストーラでは、既存の値を指定値と比較し、2 つの値のうち大きい方の値を Stacks の値として適用します。たとえば、Config.sys ファイル内の設定が stacks=9,218 で、.inf ファイル内の設定が stacks=5,256 の場合は、stacks=9,218 が適用されます。

legal-dos-stacks-value
MS-DOS でサポートされている有効範囲内の Stacks 値。

ファイルの先頭に戻る

Autoexec.bat の更新セクション (UpdateAutoBat)

[ update-autoexec-section]
CmdAdd=command-name[,command-parameters]
CmdDelete=command-name
PrefixPath=ldid[,ldid]
RemOldPath=ldid[,ldid]
TmpDir=ldid[,subdir]
UnSet=env-var-name

Autoexec.bat ファイル内の行を操作します。update-autoexec-section-name に指定するセクション名は、.inf ファイルのインストール セクションの UpdateAutoBat 項目で定義する必要があります。

Autoexec.bat の更新セクションでは、上の構文に示した項目のうち、必要なものだけを使用できます。CmdAddCmdDelete、および UnSet の各項目はセクション内で必要に応じて繰り返し指定できますが、PrefixPathRemOldPath、および TmpDir の各項目は .inf ファイル内で 1 回しか指定できません。Autoexec.bat の更新セクションに指定できる各項目タイプの構文と意味については、このトピックで後述します。

インストーラでは、CmdDelete 項目を処理してから、CmdAdd 項目を処理します。

CmdAdd 項目

CmdAdd =command-name[,"command-parameters"]
指定したコマンドを Autoexec.bat ファイルの末尾に追加します。必要に応じて、コマンド パラメータを指定することもできます。

command-name
実行可能ファイルの名前。拡張子を付けるかどうかは任意です。指定したファイル名が .inf ファイルの SourceDisksFiles セクションおよび DestinationDirs セクションでも定義されている場合には、適切なパスを付加したファイル名が Autoexec.bat ファイルに書き込まれます。

command-parameters
文字列を二重引用符で囲んで指定するか、%String1% や %Myparam% などの置換可能な文字列を指定します。これらの置換可能な文字列を置き換える実際の文字列は、.inf ファイルの Strings セクションで定義します。インストーラでは、この文字列を command-name の末尾に付加した上で、Autoexec.bat ファイルの最後の行にコマンドを追加します。この行の形式は、指定した実行可能ファイルのコマンド ライン構文に依存します。

CmdDelete 項目

CmdDelete=command-name
Autoexec.bat ファイル内の行のうち、指定したコマンド名が含まれている行を削除します。インストーラでは、指定したファイル名のうち .exe、.com、.bat のいずれかの拡張子が付いたファイル名が含まれる行を検索し、見つかった行を削除します。

command-name
実行可能ファイルの名前を拡張子なしで指定します。

PrefixPath 項目

PrefixPath=ldid[,ldid]...
指定した LDID に関連付けられているパスを path コマンドに追加します。

ldid
定義済みの LDID のいずれかか、.inf ファイル内で定義した新しい値を指定します。定義済みの LDID の値の一覧については、DestinationDirs セクションの説明を参照してください。

RemOldPath 項目

RemOldPath=ldid[,ldid]
指定した LDID に関連付けられているパスを path コマンドから削除します。たとえば、古いバージョンの Windows が C:¥Windows にインストールされているコンピュータで、新しいバージョンの Windows を C:¥Newwin にインストールする場合は、次の .inf ファイル項目を指定すると、path 環境変数から C:¥Windows が削除されます。

RemOldPath=10
ldid
定義済みの LDID のいずれかか、.inf ファイル内で定義した新しい値を指定します。定義済みの LDID の値の一覧については、DestinationDirs セクションの説明を参照してください。

TmpDir 項目

TmpDir=ldid[,subdir]
指定した LDID に対応するフォルダ内に一時フォルダを作成します (まだ作成されていない場合)。

ldid
定義済みの LDID のいずれかか、.inf ファイル内で定義した新しい値を指定します。定義済みの LDID の値の一覧については、DestinationDirs セクションの説明を参照してください。

subdir
パス名。ldid¥subdir が存在しない場合は、作成されます。

UnSet 項目

UnSet=env-var-name
Autoexec.bat ファイル内の set コマンドのうち、指定した環境変数名が含まれているものを削除します。

env-var-name
環境変数の名前。

ファイルの先頭に戻る

DestinationDirs セクション

[DestinationDirs]
file-list-section =ldid[, subdir ]
.
.
[DefaultDestDir=ldid[, subdir ]]

DestinationDirs セクションでは、file-list sections に指定したセクション (CopyFilesRenFiles、または DelFiles) による操作の対象となるディレクトリを定義します。また、DestinationDirs では、.inf ファイルの CopyFilesRenFilesDelFiles の各セクションの名前を明示的に指定せずに、これらのセクションによる操作に使用する既定のフォルダを指定することもできます。

file-list-section
Name of a CopyFiles, RenFiles, or DelFiles section. この名前は、インストール セクション内の CopyFilesRenFilesDelFiles の各項目から参照する必要があります。

ldid
論理ディスク識別子 (LDID)。次の値のいずれかを指定できます。

00 Null LDID − 新しい LDID の作成用
01 コピー元ドライブ : ¥pathname
10 マシン フォルダ (サーバーベースのセットアップ時に Windows フォルダにマッピングされます)
11 System フォルダ
12 IOSubsys フォルダ
13 Command フォルダ
17 Inf フォルダ
18 Help フォルダ
20 Fonts フォルダ
21 Viewers フォルダ
22 VMM32
23 Color フォルダ
24 Windows フォルダが格納されているドライブのルート
25 Windows フォルダ
26 Windows 用の保証起動デバイス (Winboot)
28 ホストの Winboot
30 起動ドライブのルート フォルダ
31 ホストの仮想起動ドライブのルート フォルダ

subdir
指定した LDID に対応するフォルダ内でコピー先となるサブフォルダ。

DestinationDirs セクションでは、必要に応じて DefaultDestDir 項目を使用できます。この項目を使うと、CopyFiles 項目で @ を付加したファイル名を直接指定してコピーする場合や、名前を明示的に指定していない CopyFiles セクション、RenFiles セクション、または DelFiles セクションの場合に適用する既定のコピー先ディレクトリを定義できます。DestinationDirs セクションで DefaultDestDir 項目を定義していない場合は、LDID_WIN が既定のディレクトリとして使用されます。

次の例では、MoveMiniPort セクションのコピー先のフォルダを Windows¥Iosybsys に設定し、その他のセクションの既定のフォルダを起動ドライブ上の Bin フォルダに設定します。

[DestinationDirs]
MoveMiniPort=12 ; Destination for MoveMiniPort section is
; windows¥iosubsys
DefaultDestDirs=30,bin ; Direct copies go to boot:¥bin

ファイルの先頭に戻る

SourceDisksNames セクション

[SourceDisksNames]
disk-ordinal="disk-description",disk-label,disk-serial-number
.
.
ファイルのコピーまたは名前変更操作用のコピー元ファイルが格納されているディスクを指定します。

disk-ordinal
コピー元ディスクを一意に識別する番号。複数のコピー元ディスクがある場合は、各ディスクに一意な連番を割り当てる必要があります。

disk-description
ディスクの内容や目的を説明する文字列または文字列キー。インストーラでは、この文字列をユーザーに表示して各ディスクを識別します。説明文字列は、二重引用符で囲みます。

disk-label
コピー元ディスクのフォーマット時に設定されたボリューム ラベル。

disk-serial-number
現在のリリースでは使用されていません。0 に設定する必要があります。

1 つのコピー元ディスクを指定する例を次に示します。この例では、ディスクの説明として文字列キーを使用します。

[SourceDisksNames]
55 = %ID1%, Instd1, 0
[Strings]
ID1="My Application Installation Disk 1"

ファイルの先頭に戻る

SourceDisksFiles セクション

[SourceDisksFiles]
file name=disk-number[,subdir] [,file-size]
.
.
インストール中に使用するコピー元ファイルの名前を指定し、ファイルが格納されているコピー元ディスクを識別します。

color=#000000file name
コピー元ディスクに格納されているファイルの名前。

disk-number
ファイルが格納されているコピー元ディスクの連番。この連番は、SourceDisksNames セクションで定義します。各ディスクには、1 以上の連番を割り当てる必要があります。0 を指定することはできません。

subdir
コピー元ディスク上でファイルが格納されているサブフォルダを指定します (省略可能)。このパラメータを省略すると、コピー元ディスクのルート フォルダが既定のフォルダとして使用されます。

file-sizeファイルのサイズをバイト単位で指定します (省略可能)。

SourceDisksFiles セクションの例を次に示します。この例では、連番 1 のディスクに格納されている単一のコピー元ファイル (SRS01.386) を指定します。

[SourceDisksFiles]
SRS01.386 = 1

ファイルの先頭に戻る

Strings セクション

[Strings]
strings-key=value
.
.
1 つまたは複数の文字列キーを定義します。文字列キーは、印刷可能文字で構成される文字列を表す名前です。Strings セクションは一般に .inf ファイルの末尾に記述しますが、このセクションで定義した文字列キーは、同じ .inf ファイル内のどのセクションでも使用できます。インストーラでは、文字列キーを指定された文字列に展開し、それ以降の処理に使用します。文字列キーは、パーセント記号 (%) で囲む必要があります。

strings-key
文字列の一意の名前を英数字で記述します。

value
文字列を英数字やその他の印刷可能文字で記述します。二重引用符が必要なセクションで使用する文字列キーの場合は、ここに指定する文字列を二重引用符で囲む必要があります。

.inf ファイルの単一のセクションで .inf ファイルが使用されるとき、ユーザー側に表示できるすべての文字列を置換することにより、Strings セクションを使うと、ユーザー インターフェイスに表示される文字列をローカライズしやすくなります。文字列は、なるべくリテラルではなく文字列キーとして指定してください。

Strings セクションの例を次に示します。

[Strings]
String0="My Application"
String1="My Application Readme File"
String2="CX2590 SCSI Adapter"

ファイルの先頭に戻る

Optional Components セクション

[Optional Components]
install-section-name
[install-section-name]
.
.
インストール セクションのリストを指定します。これらのインストール セクションは、ユーザーがコントロール パネルの [プログラムの追加と削除] をクリックし、[Windows ファイル] タブの [ディスク使用] をクリックしたときに表示されます。インストール セクションの一覧には、それぞれのインストール セクションに対応するチェック ボックスが表示されます。

Optional Components セクションは、.inf ファイルを右クリックし、[インストール] を選択して .inf ファイルを実行した場合には無視されます。この方法で .inf ファイルを実行すると、[DefaultInstall] セクションが実行されます。また、Setupx.dll の InstallHinfSection エントリ ポイントを経由して .inf ファイルを実行した場合にも、Optional Components セクションは無視されます。SETUPX エントリ ポイントを経由して .inf ファイルを実行すると、エントリ ポイントへのパラメータに指定した インストール セクションが実行されます。

インストール セクションは、前述した形式で定義してください。また、次のキーを インストール セクションに追加すると、[ディスク使用] ダイアログ ボックスのインターフェイスを制御することができます。

OptionDesc=option-description
Tip=tip-description
InstallDefault=0 | 1 ; Whether to install this component by default.1=Yes, 0=No.
IconIndex=icon-index
Parent= install-section-name
Needs=install-section-name, [install-section-name]
Include=inf-file, [inf-file]

option-description
リスト ボックスにコンポーネント名として表示する文字列。option-description パラメータには、%String1% などの置換可能な文字列を指定できます。%String1% を置き換える実際の文字列は、.inf ファイルの Strings セクションで定義します。

tip-description
コンポーネントがリスト ボックス内で選択されたときに [説明] ボックスに表示する文字列。tip-description パラメータに指定する文字列の長さは、255 文字以内に制限されます。このパラメータには、%String1% などの置換可能な文字列を指定できます。 %String1% に置き換わる実際の文字列は、.inf ファイルの Strings セクションで定義します。

icon-index
コンポーネント名の横に表示するミニアイコンを示す数値。有効な値は、次のとおりです。
0 − マシン (本体とディスプレイ) のアイコン
1 − 集積回路チップのアイコン
2 − ディスプレイのアイコン
3 − ネットワーク回線のアイコン
4 − Windows の旗のアイコン
5 − マウスのアイコン
6 − キーボード (3 つのキー) のアイコン
7 − 電話のアイコン
8 − スピーカーのアイコン
9 − ハード ディスクのアイコン
10 − 通信ポート コネクタのアイコン
11 − ひし形のアイコン (既定値)
12 − オン状態のチェック ボックスのアイコン
13 − オフ状態のチェック ボックスのアイコン
14 − プリンタのアイコン
15 − ネットワーク カードのアイコン
16 − 0 と同じ
17 − 0 と同じ絵の下に握手する手を示すアイコン
18 − 疑問符のアイコン
19 − ロゴのアイコン
20 − 淡色表示のチェック ボックス
21 − ダイヤルアップ ネットワークのアイコン
22 − ケーブル接続のアイコン
23 − ブリーフケースのアイコン
24 − Exchange のアイコン
25 − パーシャル チェックのアイコン
26 − アクセサリ グループのアイコン
27 − マルチメディア グループのアイコン
28 − クイック ビューアのアイコン
29 − MSN のアイコン
30 − 電卓のアイコン
31 − Defrag のアイコン
32 − 一般的な文書のアイコン
33 − ドライブスペースのアイコン
34 − ソリティアのアイコン
35 − ハイパー ターミナルのアイコン
36 − オブジェクト パッケージャのアイコン
37 − ペイントのアイコン
38 − スクリーン セーバーのアイコン
39 − ワードパッドのアイコン
40 − クリップボード ビューアのアイコン
41 − ユーザー補助のアイコン
42 − バックアップのアイコン
43 − ビットマップ ドキュメントのアイコン
44 − 文字マップのアイコン
45 − マウス ポインタのアイコン
46 − ネット ウォッチャー のアイコン
47 − ダイヤラのアイコン
48 − システム モニタのアイコン
49 − ヘルプ ブックのアイコン
50 − 地球 (コントロール パネルの [地域]) のアイコン
51 − オーディオ圧縮のアイコン
52 − CD プレーヤーのアイコン
53 − Windows Media Player のアイコン
54 − サウンド設定のアイコン
55 − ビデオ クリップのアイコン
56 − ビデオ圧縮のアイコン
57 − ボリューム コントロールのアイコン
58 − ミュージカ サウンドのアイコン
59 − ジャングル サウンドのアイコン
60 − ロボッツ サウンドのアイコン
61 − ユートピア サウンドのアイコン

Parent
オプション コンポーネントの選択用のリスト ボックスには、子レベルの項目を含めることができます。子レベルのオプション コンポーネントの場合は、親レベルとなるインストール セクションを Parent= キーワードで定義します。

Needs
ほかのコンポーネントに依存するコンポーネントの場合は、必要なコンポーネントに対応するインストール セクションをこのキーワードに指定します。ユーザーがコンポーネントを選択すると、Needs= 行に指定したインストール セクションで記述されているコンポーネントが必要であることを示す警告メッセージがユーザーに対して表示されます。

Needs= 行には、同じ .inf ファイル内のインストール セクションを指定する必要があります。ただし、ほかの .inf ファイルを Include= 行に指定すると、それらのファイルで記述されているコンポーネントを Needs= 行に指定する必要があります。

Include
ほかの .inf ファイルに含まれているセクションが必要になる場合は、Include 項目を使うと、セットアップにそれらの .inf ファイルを現在の .inf ファイルと共に読み込ませることができます。この項目に指定した .inf ファイルのどのセクションを実行するかは、Needs 項目で指定します。

2 つのオプション コンポーネント インストール セクションを定義する例を次に示します。この例では、各インストール セクションにエントリを追加して、インターフェイスの要素とコンポーネントの依存関係を指定しています。

[Optional Components]
InstallMyToys
InstallGames
[InstallMyToys]
OptionDesc=%Toys_DESC%
Tip=%Tomytoysys_TIP%
IconIndex=35 ;Phone mini-icon for dialogs
Parent=MailApps
Needs=MSMAIL, MAPI, MicrosoftNetwork
Include=mos.inf, msmail.inf
CopyFiles=MyToysFiles
UpdateInis=MyToysLinks
AddReg=MyToysRegItems
[InstallOtherApps]
OptionDesc=%Other_DESC%
Tip=%Other_TIP%
IconIndex=4 ;windows mini icon for dialogs
CopyFiles=OtherFiles
UpdateInis=OtherLinks
AddReg=OtherRegItems
[Strings]
Toys_DESC="Mail Utilities"
Toys_TIP="Additional utilities for sending and organizing mail"
Other_DESC="Other Helpful Utilities"
Other_TIP="Calculator, disk checker and performance monitor"

ファイルの先頭に戻る

関連項目