大雑把に言って、アプリケーションごとに下記の 2 つの設定を行います。
これらの作業を行なうには、昇格が必要となります。
その後で、実際にアプリケーションを使用するユーザーごとに関連づけの設定を行います。
- HEKY_LOCAL_MACHINE にアプリケーションの基本情報を登録
- HKEY_CLASSES_ROOT にプログラムID を登録
まず先に、表における用語定義。それぞれ、作成するアプリケーションに合わせて読み替えてください。
- {Company}
- 社名。サンプルでは RAPT と表記しています。
- {AppName}
- アプリケーション名。サンプルでは DonutRAPT と表記しています。
- {AppPath}
- アプリケーションへのパス。C:\Program Files\RAPT\DonutRAPT\Donut.exe のように実行可能ファイルへの絶対パスが入ります。
また、サンプルとして、実際に拙作の Donut RAPT 用の関連づけ設定ツールで設定している内容の抜粋も記載します。
[レジストリキー] キー='値' の書式で記述していますが、実際には '値' の前後のシングルクォート(')は不要です。
- まず、既定のプログラムに表示するために必要なアプリケーション情報を登録します。
レジストリキー |
種類 |
名前 |
値 |
HKLM |
SOFTWARE |
{Company} |
{AppName} |
Capabilities |
REG_SZ |
ApplicationName |
アプリケーション名 |
REG_SZ |
ApplicationDescription |
アプリケーションの説明 |
- 次に、先ほど登録したアプリケーション情報の位置を下記の場所に記述します。
これによって、既定のプログラムの一覧に項目が追加されます。
レジストリキー |
種類 |
名前 |
値 |
HKLM |
SOFTWARE |
RegisteredApplications |
REG_SZ |
{AppName} |
SOFTWARE\{Company}\{AppName}\Capabilities |
- 拡張子 .html と .url そして http プロトコルに対して関連づけを設定することを宣言します。
なお、ここで MyApp.AssocFile.HTML などの値を特別にプログラムIDと呼称します。
レジストリキー |
種類 |
名前 |
値 |
HKLM |
SOFTWARE |
{Company} |
{AppName} |
Capabilities |
FileAssociations |
REG_SZ |
.html |
MyApp.AssocFile.HTML |
REG_SZ |
.url |
MyApp.AssocFile.URL |
URLAssociations |
REG_SZ |
http |
MyApp.HTTP |
- 上記で宣言したプログラムIDについて、個別に定義します。
種類のうち、'REG_EXPAND_SZ' ってのは、値のうち、% で括られている部分を環境変数で展開して使用することを示します。
'FriendlyTypeName' は、既定のプログラムで表示される種類についての説明です。
'IsShortcut' はショートカットであることを示し、'NeverShowExt' は、拡張子を表示しないことを示します。
これらの記述がないと、お気に入りなどで、タイトル.url などと表示されることになります。
レジストリキー |
種類 |
名前 |
値 |
HKCR |
MyApp.AssocFile.HTML |
|
REG_SZ |
(標準) |
HTML Document |
REG_EXPAND_SZ |
FriendlyTypeName |
@%systemroot%\system32\ieframe.dll,-912 |
shell |
open |
command |
REG_SZ |
(標準) |
"{AppPath}" |
{AppName} |
|
REG_SZ |
(標準) |
MyApp で開く |
command |
REG_SZ |
(標準) |
"{AppPath}" |
MyApp.AssocFile.URL |
|
REG_EXPAND_SZ |
FriendlyTypeName |
@%systemroot%\system32\ieframe.dll,-10046 |
REG_DWORD |
EditFlags |
2 |
REG_SZ |
IsShortcut |
※空文字列を設定 |
REG_SZ |
NeverShowExt |
※空文字列を設定 |
shell |
open |
command |
REG_SZ |
(標準) |
"{AppPath}" |
{AppName} |
|
REG_SZ |
(標準) |
MyApp で開く |
command |
REG_SZ |
(標準) |
"{AppPath}" |
MyApp.HTTP |
|
REG_SZ |
(標準) |
URL:Hyper Text Transfer Protocol |
REG_EXPAND_SZ |
FriendlyTypeName |
@%systemroot%\system32\ieframe.dll,-903 |
REG_DWORD |
EditFlags |
2 |
REG_SZ |
URL Protocol |
※空文字列を設定 |
shell |
open |
command |
REG_SZ |
(標準) |
"{AppPath}" |
{AppName} |
|
REG_SZ |
(標準) |
MyApp で開く |
command |
REG_SZ |
(標準) |
"{AppPath}" |
これだけ登録できていれば、既定のプログラムにアプリケーションと関連づけ可能な一覧が追加されます。
あとはユーザーごとに関連づけの設定を行うだけです。
次はいよいよ、API でユーザーごとの関連づけを行なう方法を書きます。
[Vista] 関連づけ設定(1)
[Vista] 関連づけ設定(2)