はみ出しRAPTの戯言

- a day after yesterday -

目次

Blog 利用状況

ニュース

書庫

日記カテゴリ

コミュニティ リンク

[Vista] 関連づけ設定(1)

Windows Vista では、関連づけの設定方法が、今までの OS と互換性がなくなりました。
今までは、関連づけは、全てのユーザーで共有されていたのが、(※)
Vista では、ユーザーごとに管理できるようになりました。

アプリケーションで、関連づけを行なうには、次の2段階の手順が必要となります。

1.アプリケーションのプログラムIDをレジストリに登録
ここで、プログラムIDは、根幹となるもので、昇格が必要となる、HKEY_CLASSES_ROOT
情報を追加する必要があります。ここですべてのユーザーに対して既定のアプリケーション
として登録してしまうこともできるようですが、Vista では推奨されないそうです。

このプログラムIDをレジストリに追加する事で、「スタート」→「既定のプログラム」
で、アプリケーションの一覧に、指定のアプリケーション名を表示させることができ、
ユーザーに選んでもらうことが可能になります。

2.ユーザーごとに、既定のアプリケーションを選択させる
プログラムIDが登録されていれば、IApplicationAssociationRegistration を使って
既定のプログラムを変更することができるようになります。

※IApplicationAssociationRegistration(なげぇよ)は最新の SDK に含まれている
ので、手元の SDK に含まれていない時は、最新のSDKをダウンロードしてください。

続く...

※2007/02/14 とっちゃんさんご指摘により、Windows2000 以降で既にマシンごと・
ユーザーごとに設定を分けて保存できたとのことで、一部修正しました。

[Vista] 関連づけ設定(2)

投稿日時 : 2007年2月13日 3:41

コメントを追加

# re: [Vista] 関連づけ設定(1) 2007/02/13 13:57 とっちゃん

とりあえず突っ込んでおくねw

HKEY_CLASSES_ROOT の管理は、Win32 の最初から、ユーザーごととマシンごとの2つあります。

実体は、それぞれ HKEY_LOCAL_MACHINE\SOFTWARE\Clases と、HKEY_CURRENT_USER のそれ(同じ場所)。

ただ、ここのアクセス制限が入るようになったのは、2000から。
なので、2000/XP/2003/Vista ではエクスプローラの挙動が変わります。
実行中のアカウントがHKLM側に書き込み可能な場合(正確に言うと、まったくお構いなしに、HKCR に書きに行ってるw)は、全体で、そうじゃなければマシンごとにとなります。

行儀のよいソフトの場合は、書き込み権限があっても、HKCU 側に書きに行くソフトもあります。

まぁ、エクスプローラのお行儀がよくなったのは、Vistaからなんですがねw

# re: [Vista] 関連づけ設定(1) 2007/02/14 1:49 RAPT

>HKEY_CLASSES_ROOT の管理は、Win32 の最初から、ユーザーごとと
>マシンごとの2つあります。
へぇ、それは知りませんでした。
なるほど、HKLM(マシンごと)と HKCU(ユーザーごと)との管理なんですね。

>実行中のアカウントがHKLM側に書き込み可能な場合(正確に言うと、
>まったくお構いなしに、HKCR に書きに行ってるw)は、全体で、
>そうじゃなければマシンごとにとなります。
ここのところが理解できませんでした。

HKCR=HKLM →全体
HKCR=HKCU →マシンごと
と読めるのですが、「全体」と「マシンごと」が同じことを意味しているように
受け取られます。よろしければもうすこし詳しく教えて頂けないでしょうか。

えぇと、Win98の頃から、Win2k 以降でもそのまんまで動いていたのでそれで
良いのかと思っていました。

あと、Windows 2000 で、regedit と regedt32 の2種類があったことも
最近知りました。。

# re: [Vista] 関連づけ設定(1) 2007/02/14 10:26 シャノン

>実行中のアカウントがHKLM側に書き込み可能な場合(正確に言うと、
>まったくお構いなしに、HKCR に書きに行ってるw)は、全体で、
>そうじゃなければマシンごとにとなります。

最後の行は「そうじゃなければユーザごとになります」の間違いかなぁ。
なお、実際にやってみればわかりますが、HKCRには、HKLM\Software\ClassesとHKCU\Software\Classesの内容がマージされて表示されます。
2003以降では、HKCUに書き込んだ時に、HKLMとHKCUのどちらに実体が置かれるかはACLによる、ということでしょうかね。
ちなみにMSはHKCUを推奨してるんでしょうか?

#関連付けをフルサポートするAPIが無いのはなんでかなぁ。
#あと、IQueryAssociationsとかいうインターフェイスもたまには思い出してあげてください。

# re: [Vista] 関連づけ設定(1) 2007/02/14 20:16 とっちゃん

あ、コメント入れたの忘れてたw
しかも間違ってるし...orz

シャノンさんのフォロー通り、マシンごとじゃなくユーザーごとです。申し訳ない。

この辺、実のところOSごとにビミョーに違ってるんで、それぞれのロゴ&当時のMSDN(そんなもの持ってる人の方が少ないわけですがw)を見るのが一番手っ取り早かったりしますw

一応現在の最新版は、WindowsSDKで、実際にこのあたりが載ってるのは
Win32 and COM Development-User Interface-Windows Shell-Shell Develper's Guide-Integraction of Applications int the Shell for File Format Owners のところ。
#長っ!
MSDNのサイトがアクセスできないんで、URLがわかりません...w
でもって、これの日本語訳は「ありません」<ここ8倍角でw
Vista関係については、ロゴにその要約がありますが、残念ながらそれだけじゃ作れないってものしかないので、役立たずに近いですねw<概要程度と思ってくださいw

XPで本当は変わってるんですが、当時はドキュメントされてなかったんで、ようやくドキュメントが出てきたというところです...orz

#APIについては...この先もちょっと厳しいのかなぁww

# re: [Vista] 関連づけ設定(1) 2007/02/15 3:23 RAPT

関連づけについては、COM で提供されていますが、
API もあることはあるのですが、不充分だったり。
その辺のところは(3)で書く予定です。

# re: [Vista] 関連づけ設定(1) 2007/02/15 17:07 シャノン

> その辺のところは(3)で書く予定です。

おぉ、(2)のみならず、既に(3)の構想まで!
ちょー楽しみに待ってます。

# [Vista] 関連づけ設定(2) 2007/04/29 4:04 はみ出しRAPTの戯言

[Vista] 関連づけ設定(2)

# [Vista] 関連づけ設定(3) 2007/06/07 10:12 はみ出しRAPTの戯言

[Vista] 関連づけ設定(3)

# ptusYlMZaQX 2022/04/19 12:33 johnansaz

http://imrdsoacha.gov.co/silvitra-120mg-qrms

タイトル
名前
URL
コメント