DOBON.NET DOBON.NETプログラミング掲示板過去ログ

関連付けされたファイルからプログラムの起動

環境/言語:[WindowsXP,C#2005,.NET Framework2.0.50727]
分類:[.NET]

初めまして。
現在C#で音楽再生プレイヤーを作成しています。

●プログラムをファイルの拡張子に関連付ける
http://backno.mag2.com/reader/BackBody?id=200409140600000000104516000
上記を参考に拡張子にプログラムを関連付けることは出来ました。

しかし関連付けされたファイルをダブルクリックした時にプログラムを起動する
ことが出来ません。
WindowsMediaPlayerが起動されてしまいます。
右クリックの「プログラムから開く」に追加されているのですが…。

過去ログのNo7694の「関連ファイルからソフトを起動」を参考にしたのですが、
例えば拡張子.mp3だけを指定するにはどうすればよいのですか?
一つのファイルの指定だけじゃなく、すべてのmp3ファイルを指定することは出来るのでしょうか?

初歩的な質問で申し訳ありませんが、宜しくお願い致します。
> 過去ログのNo7694の「関連ファイルからソフトを起動」を参考にしたのですが、
> 例えば拡張子.mp3だけを指定するにはどうすればよいのですか?
> 一つのファイルの指定だけじゃなく、すべてのmp3ファイルを指定することは出来るのでしょうか?

この意味が全く分かりませんのでなんともいえないのですが、とりあえずどのようなことを行って、何を確認したかを教えていただけないでしょうか?例えば、はじめにmp3の前の設定をレジストリから削除しておくということはお試しになりましたか?また、動詞を色々変えて試されましたか?「ファイルの種類」でのmp3の設定はどのようになっていましたか?
返信ありがとうございます。
こちらの文章力不足で大変申し訳ありません。
まず過去ログのhttp://dobon.net/vb/bbs/log3-13/7694.htmlを参考にしました。

>とりあえずどのようなことを行って、何を確認したかを教えていただけないでしょうか?
初めに書きました「●プログラムをファイルの拡張子に関連付ける」を参考に拡張子mp3のレジストリのHKEY_CLASSES_ROOTキーに
プログラムを追加することが出来ました。
レジストリに追加出来たので、mp3ファイルをダブルクリックして再生出来るのかと思い、試してみましたが以前関連付けされていたWindowsMediaPlayerが起動されしまいました。


>例えば、はじめにmp3の前の設定をレジストリから削除しておくということはお試しになりましたか?
レジストリから削除も試してみたのですが、変わらずWindowsMediaPlayerが起動されてしまいます。
フォルダオプションの「ファイルの種類」でmp3の設定を現在作成しているプログラムに変更すると起動することが出来ました。
C#で「ファイルの種類」の設定を変更することは出来ないのでしょうか?


>動詞を色々変えて試されましたか?
動詞は現在openになっているのですが、知識不足の為どう変えていけば良いのか予測出来ません。
もし宜しければ教えて頂けないでしょうか?


予想では上記の過去ログに書かれていた
System.Diagnostics.Process.Start("D:\Pegalabo.txt")
これで、拡張子に関連付けされたファイルを開けると思ったのですが、
この場合だと"D:\Pegalabo.txt"と一つのファイルを指定していますよね?
これをすべてのmp3ファイルを指定するにはどうしたら良いのですか?

申し訳ありませんが、ご鞭撻の方よろしくお願いいたします。
> >例えば、はじめにmp3の前の設定をレジストリから削除しておくということはお試しになりましたか?
> レジストリから削除も試してみたのですが、変わらずWindowsMediaPlayerが起動されてしまいます。

具体的にはどのキーを削除しましたか?私が試したところでは、"HKEY_CLASSES_ROOT\.mp3"を削除したら、「このファイルを開けません」と表示されるようになりましたが。

> フォルダオプションの「ファイルの種類」でmp3の設定を現在作成しているプログラムに変更すると起動することが出来ました。

私のパソコンでは、MP3にはplayとopenの2つの動詞が存在しています。どちらの設定を変更しましたか?また、これで成功したのであれば、レジストリエディタで関連付けたプログラムを検索すれば、レジストリのどのキーを変更すれば関連付けができるかが分かるのではないでしょうか?

> C#で「ファイルの種類」の設定を変更することは出来ないのでしょうか?

「プログラムをファイルの拡張子に関連付ける」で紹介している方法がそれのはずなのですが...。

> >動詞を色々変えて試されましたか?
> 動詞は現在openになっているのですが、知識不足の為どう変えていけば良いのか予測出来ません。

playは試されましたか?

> 予想では上記の過去ログに書かれていた
> System.Diagnostics.Process.Start("D:\Pegalabo.txt")
> これで、拡張子に関連付けされたファイルを開けると思ったのですが、
> この場合だと"D:\Pegalabo.txt"と一つのファイルを指定していますよね?
> これをすべてのmp3ファイルを指定するにはどうしたら良いのですか?

やはり、全てのファイルという意味が分かりません。もしコンピュータ上にある全てのMP3ファイルという意味であれば、コンピュータ上にある全てのMP3ファイルを検索して、それぞれをProcess.Startなどで開けばよいのではないでしょうか?(このようなことをすべきではありませんが...。)

とにもかくにも、色々試されることをお勧めします。

DOBON.NET | プログラミング道 | プログラミング掲示板