ページ 11

開いたファイルのパスの取得方法

Posted: 2012年1月05日(木) 15:36
by Fimbul
題名の開いたファイルと言うのは、(ダブル)クリックで開いたファイルの事です。
ファイルを開く操作は設定でクリックかダブルクリックを選択できるので、以下単にクリックと表記します。

例えば、既定のプログラムにWindows Media Playerが選択されていた場合、音楽、動画ファイル(以下単にファイル)をクリックすればWindows Media Playerでそのファイルが再生されます。

ここで、自作したソフトでクリックしたファイルを再生する場合、Windows API、DXライブラリのどちらでファイルを再生するにしても、ファイルのパスが必要だと思うのですが、クリックされたファイルのパスはどの様にして取得すれば良いのでしょうか。

Re: 開いたファイルのパスの取得方法

Posted: 2012年1月05日(木) 15:55
by softya(ソフト屋)
ファイルを関連付けすると起動引数としてファイル名が得られます。

「コマンドライン引数」
http://wisdom.sakura.ne.jp/system/winap ... /win6.html
ここの第3パラメータがファイル名の文字列です。

Re: 開いたファイルのパスの取得方法

Posted: 2012年1月05日(木) 21:33
by Fimbul
softyaさんありがとうございます。
無事にファイル名を取得する事が出来ました。

もう1つ質問です。
Windows Media Player(以下WMPと表記)はファイルを再生中に他のファイルを開くと、WMPを新たに起動させずに、新たに開かれたファイルを既に起動してあるWMPで再生します。
この様に、新しくプログラムを起動させずに、新たに開かれたファイルを再生させるにはどの様にすればよいのでしょうか。

Re: 開いたファイルのパスの取得方法

Posted: 2012年1月05日(木) 21:51
by softya(ソフト屋)
多重起動を禁止して既に起動している自分自身にメッセージで通知するとかの方法を取ります。後で起動した方はウィンドウを生成する前にメッセージ通知したら終了します。

「Windows上で多重起動を防止する方法」
http://www.daccho-it.com/program/WinApi/unmultiboot.htm

メッセージで通信。他にも共有メモリを使うとか方法はいくつかあります。
「メッセージの共有」
http://wisdom.sakura.ne.jp/system/winap ... in155.html

Re: 開いたファイルのパスの取得方法

Posted: 2012年1月06日(金) 21:55
by Fimbul
softyaさん返信ありがとうございます。
自分でコードを書いてみて動作確認するまで、少し時間が掛かりそうなので解決とさせてもらいます。