バナー

セットアップ情報ファイル (.inf) によるフォルダとファイルの操作

.inf ファイルを使用すると、いくつかの方法でファイルとフォルダを操作できます。主に、次のような操作が可能です。

フォルダ内のサブフォルダおよびショートカットの作成

コンポーネントのインストール後には、シェルを介して、[Program Files] フォルダにサブフォルダを作成したり、任意のフォルダ内にショートカットを作成することができます。セットアップ プログラムは、Setup.ini ファイルの [progman.groups] セクションを参照し、指定されているフォルダにサブフォルダやショートカットを作成します。

コンポーネントのインストール時に [Program Files] フォルダ内にサブフォルダやショートカットを作成する必要がある場合は、Setup.ini ファイル内に適切なエントリが生成されるように、.inf ファイルに UpdateInis セクションを定義します。Setup.ini ファイルでは、次の構文でフォルダやショートカットが作成されます。これらのフォルダは、[スタート] メニューに対応しています。

[progman.groups]
folder_1=Folder_1_Name
folder_2=Folder_2_Name
:
folder_n=Folder_n_Name

[folder_1]
Link-Name, .exe-name, Icon-file-name, Icon-index, profile

profile フィールドの値を省略 (Null に設定) すると、ショートカットが常にフォルダに追加されます。

例 : Games

[Optional Components]
games
[games] 
OptionDesc= %GAMES_DESC%
CopyFiles= wingames.files
UpdateInis= wingames.links
[wingames.files]
cards.dll
freecell.exe
freecell.hlp 
mshearts.exe 
mshearts.hlp
sol.exe
sol.hlp
winmine.exe
winmine.hlp
[wingames.links]
setup.ini, progman.groups,, "gamesfolder=%GAMES_DESC%" ;creates folder
setup.ini, gamesfolder,, """Solitaire Game"",SOL.EXE,,," ;creates link
setup.ini, gamesfolder,, "Minesweeper,WINMINE.EXE,,," ;creates link
setup.ini, gamesfolder,, ""Hearts Card Game"",MSHEARTS.EXE,,,";creates link
setup.ini, gamesfolder,, "FreeCell,FREECELL.EXE,,," ;creates link

上の例の実行結果 : セットアップの [オプション コンポーネント] ダイアログ ボックスに "ゲーム" が表示されます。ユーザーが "ゲーム" を選択すると、[Program Files] フォルダ内に [Games] サブフォルダが作成され、このサブフォルダ内に ソリティア、マインスイーパ、ハーツ、およびフリーセルへのショートカットが作成されます。

長いファイル名の作成と削除

名前の変更操作は、レジストリ内で次のレベルの下層に定義します。

HKEY_LOCAL_MACHINE¥Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles

削除操作は、レジストリ内で次のレベルの下層に定義します。

HKEY_LOCAL_MACHINE¥Software¥Microsoft¥Windows¥CurrentVersion¥DeleteFiles 

この 2 つのレベルの下層に、名前変更操作と削除操作を 1 つずつ個別のサブキーとして追加します。この各操作は、同じフォルダ内のファイルに対してのみ適用されます。各サブキーには、操作の対象となるフォルダ パスを指定するエントリと、実際の操作を指定するエントリの少なくとも 2 つのエントリを定義する必要があります。

それぞれの操作グループの最初のキーは、フォルダ エントリです。関連するフォルダに対する名前変更操作のエントリは、"old_short_name"="new_long_name,[attrib_flag]" の形式のエントリです。

名前変更操作中にファイル属性を設定する必要がある場合は、attrib_flag を指定します。このフラグに指定できる値は、次のとおりです。

1 READONLY
2 HIDDEN
3 SYSTEM

ファイルまたはフォルダに複数の属性を設定するには、それらの属性に対応する値を加算した値をこのフラグに指定します。たとえば、READONLY 属性および HIDDEN 属性を設定するには、attrib_flag の値を 3 に設定します。

次に示す AddReg セクションの例では、¥Windows¥system32¥Sample フォルダに SYSTEM 属性および HIDDEN 属性を設定します。

HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles¥Sys,,,%11%
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles¥Sys,SAMPLE,,"SAMPLE,6"

関連するフォルダに対する削除操作の各エントリは、"arbitrary_key_name"="long_name_to_delete" の形式のエントリです。

長いファイル名を削除する AddReg セクションの例を次に示します。

[MyAppShort2Long]
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles¥Samples,,,C:¥Samples
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles¥Samples,oldname.txt,,"New 
Long Name.txt"
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles¥Win,,,%25%
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥RenameFiles¥Win,myreadme.txt,,"My App Readme.txt" 

長いファイル名を削除する AddReg セクションの例を次に示します。

[MyAppDelLong]
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥DeleteFiles¥Samples,,,C:¥Samples
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥DeleteFiles¥Samples,oldname.txt,,"New 
Long Name.txt"
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥DeleteFiles¥Win,,,%25%
HKLM,Software¥Microsoft¥Windows¥CurrentVersion¥DeleteFiles¥Win,myreadme.txt,,"My App Readme.txt" 

これらのエントリの名前変更操作または削除操作が完了すると、レジストリからエントリが削除されます。

ファイル属性とフォルダ属性の設定

ファイルまたはフォルダの属性を設定するには、長いファイル名を作成する場合と同様に、オプションのフラグを使用します。

詳細については、このトピックの「長いファイル名の作成と削除」を参照してください。

[Program Files] フォルダへのファイルのコピー

次の例では、Program Files¥Accessories フォルダに 3 つのファイルをコピーし、そのうち 1 つのファイルに対してショートカットを作成します。

[WordPadInstall
CopyFiles = WordPadCopyFiles
UpdateInis = WordPadInis
[DestinationDirs]
WordPadCopyFiles = 24,%PROGRAMF%¥%ACCESSOR%
[WordPadCopyFiles]
mswd6_32.wpc
wordpad.exe
write32.wpc
[WordPadInis]
setup.ini, progman.groups,, "group4=%APPS_DESC%" ;creates Accessories folder (if not already there)
setup.ini, group4,, """%WORDPAD_LINK%"", 
""%24%¥%PROGRAMF%¥%ACCESSOR%¥WORDPAD.EXE""" ;creates link in Accessories folder
[Strings]
APPS_DESC = "Accessories"
WORDPAD_LINK = "WordPad"
; Folder names - note that the short versions must match the truncated
; 8-character names for the long versions, or else there are problems.
PROGRAMF = "Progra‾1" ; first 6 chars of Program_Files, + "‾1"
	ACCESSOR = "Access‾1" ; first 6 chars of Accessories, + "‾1" 

.inf ファイルの制限事項

関連項目