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

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
Fimbul
記事: 100
登録日時: 14年前

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

#1

投稿記事 by Fimbul » 13年前

題名の開いたファイルと言うのは、(ダブル)クリックで開いたファイルの事です。
ファイルを開く操作は設定でクリックかダブルクリックを選択できるので、以下単にクリックと表記します。

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

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#2

投稿記事 by softya(ソフト屋) » 13年前

ファイルを関連付けすると起動引数としてファイル名が得られます。

「コマンドライン引数」
http://wisdom.sakura.ne.jp/system/winap ... /win6.html
ここの第3パラメータがファイル名の文字列です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Fimbul
記事: 100
登録日時: 14年前

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

#3

投稿記事 by Fimbul » 13年前

softyaさんありがとうございます。
無事にファイル名を取得する事が出来ました。

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

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 15年前
住所: 東海地方
連絡を取る:

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

#4

投稿記事 by softya(ソフト屋) » 13年前

多重起動を禁止して既に起動している自分自身にメッセージで通知するとかの方法を取ります。後で起動した方はウィンドウを生成する前にメッセージ通知したら終了します。

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

メッセージで通信。他にも共有メモリを使うとか方法はいくつかあります。
「メッセージの共有」
http://wisdom.sakura.ne.jp/system/winap ... in155.html
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

Fimbul
記事: 100
登録日時: 14年前

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

#5

投稿記事 by Fimbul » 13年前

softyaさん返信ありがとうございます。
自分でコードを書いてみて動作確認するまで、少し時間が掛かりそうなので解決とさせてもらいます。

閉鎖

“C言語何でも質問掲示板” へ戻る