複数のアプリとファイル拡張子の関連付けについて
- 題名: 複数のアプリとファイル拡張子の関連付けについて
- 著者: ゆうじ
- 日時: 2011/06/28 16:21:21
- ID: 28707
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 複数のアプリとファイル拡張子の関連付けについて
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2011/06/29 4:51:54
- ID: 28711
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 複数のアプリとファイル拡張子の関連付けについて
- 著者: ゆうじ
- 日時: 2011/06/29 13:05:46
- ID: 28718
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
今回は複数のアプリケーションとファイル拡張子の関連付けについての質問です。
まず、アプリAとアプリBがあったとします。
(ちなみに、アプリAはデータを作成・保存ができるアプリケーション、アプリBは
データの閲覧専用のビューア的なものを想定しています。)
ユーザーは目的に応じてアプリA・アプリBをインストールします。
どちらか片方をインストールする人もいれば、両方インストールする人もいます。
これらアプリのインストール時に、データファイルの拡張子(仮に"*.abc"とします)を、
アプリA・アプリBに対して関連付けを行いたいのですが、アプリAとアプリBが両方とも
インストールされている場合は、ファイルのダブルクリックを行った時にはアプリAを
優先して起動するようにしたいのです。
セットアッププロジェクトでインストーラーを作成することを前提とするとして、
一つのアプリケーションに対してファイルの拡張子を関連付けさせるのであれば
セットアッププロジェクトの「ファイルの種類」で該当拡張子を設定すればいいのですが、
今回のような複数アプリに対する優先起動を行うには、セットアッププロジェクトで
カスタム動作エディタを使い、すでにインストールされているアプリを判断してコードで
ファイルの拡張子の関連付けをするという方法しかないのでしょうか?
例えば、
・アプリAインストール時、必ずアプリAと拡張子"*.abc"との関連付けを行う。
・アプリBインストール時、アプリAがすでにインストールされている場合はファイルの関連付け
は行わない。
・アプリAアンインストール時、アプリBがインストールされている場合はアプリBと拡張子"*.abc"
との関連付けを行う。
・アプリBアンインストール時、アプリAがインストールされていなければ拡張子"*.abc"との
関連付けを削除する。
ということを思いつくのですが、こんな面倒くさいことをしなくとも実現は可能でしょうか?
※そもそも、一つの拡張子に対しては一つのアプリケーションしか割り当てられないものと
思い込んでいるのですが、その認識が間違っているようでしたらご指摘ください。
なお、一応、カスタム動作エディタとコードによるファイル拡張子の関連付けについては、
以下のページで確認しました。
・カスタム動作エディタの使い方
http://dobon.net/vb/dotnet/deployment/customaction.html
・プログラムをファイルの拡張子に関連付ける
http://dobon.net/vb/dotnet/system/associatedapp.html
また、アプリBをClickOnceアプリケーションにすることも検討しているのですが、この場合も
同様のことが可能でしょうか?
纏めると、アプリAとアプリBがインストールされている場合、xxx.abcというファイルをダブルクリック
した時には、アプリAを優先して起動させたいのです。
どうぞアドバイスの程よろしくお願い申し上げます。