- PR -

XMLとアプリケーションの関連付けについて

投稿者投稿内容
ゆき
大ベテラン
会議室デビュー日: 2003/11/02
投稿数: 121
投稿日時: 2004-05-20 22:20
こんばんわ
自作のアプリケーションでxmlファイルを作り、そのファイルを開いた時にそのアプリケーションが起動するようにしたいのですが(アイコンも自作のものにしたいです)、
何か良い方法はないでしょうか?
Office2003のxmlファイルではXML宣言の後の
<?mso-application progid="Word.Document"?>
でアイコンやアプリケーションを区別しているようなのですが。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-21 01:16
諸農です。

引用:

自作のアプリケーションでxmlファイルを作り、そのファイルを開いた時にそのアプリケーションが起動するようにしたいのですが(アイコンも自作のものにしたいです)、
何か良い方法はないでしょうか?



起動って言うのはSHELLで起動って事ですよね?

であれば、
HKEY_CLASSES_ROOTにある.xmlエントリの標準の所に
ユニークな識別子をセットして、その識別子でエント
リを作り、その配下にDefaultIconサブキーを作って
アイコン情報を持つexeかdllを指定してアイコン番号
も指定し、\shell\open\commandサブキーも作って、
起動したいアプリへのパスを指定すればいいのでは無
いでしょうか。

引用:

Office2003のxmlファイルではXML宣言の後の
<?mso-application progid="Word.Document"?>
でアイコンやアプリケーションを区別しているようなのですが。



浅学で申し訳ないのですが、ここで書かれているのは、
Office2003を入れるとSHELLがXMLファイルの中身を
分析するようになると言う事なんでしょうか?
Office2003をまだ手に入れていないので判らないのですが、
FindExecutableを使うと何が返ってくるのか興味がありますね。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-05-21 12:12
Jubeiさん、こんにちは。

引用:

Office2003を入れるとSHELLがXMLファイルの中身を
分析するようになると言う事なんでしょうか?


レジストリを見ると、シェルエクステンションに IconHandler というのが登録されていました。
また、デフォルトで開くアプリケーションも書き換えられており、ここで指定されたEXEが件のタグを見て、ExcelとかWordとかを呼び出しているみたいです。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-21 14:00
諸農です。

情報ありがとうございます。

引用:

レジストリを見ると、シェルエクステンションに IconHandler というのが登録されていました。
また、デフォルトで開くアプリケーションも書き換えられており、ここで指定されたEXEが件のタグを見て、ExcelとかWordとかを呼び出しているみたいです。



となると、先の私の発言での強制的なやり方だとまずいですね。。
元投稿者の方の意見の通り、XML内にレジストリに登録した自前の
アプリのIDを記述するという方法を採用するということになりそ
うですね。。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ゆき
大ベテラン
会議室デビュー日: 2003/11/02
投稿数: 121
投稿日時: 2004-05-21 22:40
引用:
-------------------------------------------------------------------------------

レジストリを見ると、シェルエクステンションに IconHandler というのが登録されていました。
また、デフォルトで開くアプリケーションも書き換えられており、ここで指定されたEXEが件のタグを見て、ExcelとかWordとかを呼び出しているみたいです。

-------------------------------------------------------------------------------
引用

となると、先の私の発言での強制的なやり方だとまずいですね。。
元投稿者の方の意見の通り、XML内にレジストリに登録した自前の
アプリのIDを記述するという方法を採用するということになりそ
うですね。。

-------------------------------------------------------------------------------
こんばんわ
お返事ありがとうございます。
いやはや・・・初心者の私には難しすぎて・・・
「XML内にレジストリに登録した自前の
アプリのIDを記述するという方法」
と教えていただいても・・・つまりどうすればよい?
って感じになってしまいます。すいません。
普通のファイルのように専用のアイコンが表示され、
ダブルクリックでそのアプリケーションが起動できるようにしたいのですが、
「レジストリを見ると、シェルエクステンションに IconHandler というのが登録されていました。 」
という書込みから想像するに、Office2003がインストールされていないと、
私のやりたいことはできないっていうことなのでしょうか?


なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-05-22 01:27
引用:

ひろこさんの書き込み (2004-05-21 22:40) より:
という書込みから想像するに、Office2003がインストールされていないと、
私のやりたいことはできないっていうことなのでしょうか?


拡張子はxmlでないと駄目なんでしょうか?
独自に拡張子を決めた方が無難のような気がしますが…
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-22 06:57
諸農です。

引用:

いやはや・・・初心者の私には難しすぎて・・・
「XML内にレジストリに登録した自前の
アプリのIDを記述するという方法」
と教えていただいても・・・つまりどうすればよい?



先の投稿にも書いたように、呼び出したいアプリを
レジストリに登録して、そのエントリを
<?mso-application progid="Word.Document"?>
のWord.Documentの替わりに記述すればいいのでは?

引用:

普通のファイルのように専用のアイコンが表示され、
ダブルクリックでそのアプリケーションが起動できるようにしたいのですが、


Office2003との関連づけを失ってもいいのであれば、
.xmlのエントリの標準の所に、起動したいアプリ用で登録した
キーに書き換えればいいです。

引用:

という書込みから想像するに、Office2003がインストールされていないと、
私のやりたいことはできないっていうことなのでしょうか?



ん?
もしも、理解し難い部分があるのでしたら、
こんなことは避けた方がいいかと思われます。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
きくちゃん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 854
お住まい・勤務地: 都内某所
投稿日時: 2004-05-23 01:00
Jubeiさん、こんばんは。

引用:

レジストリに登録して、そのエントリを
<?mso-application progid="Word.Document"?>
のWord.Documentの替わりに記述すればいいのでは?


いや、どうもOfficeアプリケーションの場合のみ有効のようです。
期待させてすみません>ひろこさん

スキルアップ/キャリアアップ(JOB@IT)