- PR -

関連付けられたファイルからのアプリケーション起動について

1
投稿者投稿内容
初心者
会議室デビュー日: 2005/08/13
投稿数: 10
投稿日時: 2005-09-24 16:51
こんにちは。

現在、初めてVC.NET(WindowsXP Proffesional)
を用いてアプリケーション開発に携わっております。

今回のアプリケーション開発ではエクスプローラで関連
つけられた拡張子からの起動と実行ファイルからの起動
(exeをたたかれての起動)で処理を分ける必要があるの
ですが、アプリケーション側でどのように起動されたか
認識することは可能でしょうか?

具体的には
1.関連付けからの起動→そのファイルのあるフォルダ内のファイル一覧画面を出力
2.実行ファイルからの起動→ファイル一覧に何も表示せず画面出力

という処理が必要になります。
MFCや標準APIで認識する方法がないかご存知の方が
おられましたらご教授お願い致します。
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-09-24 17:02
こんにちは。Tdnr_Symです。

関連付けられたファイルから起動された場合は、コマンドラインにそのファイル名が引数として取得できるはずです。

MFCアプリケーションであれば、CxxxApp(CWinAppの派生クラス)の
InitInstance関数をオーバーライドして(ウィザードから作成された場合にはすでに存在すると思います。)
ParseCommandLine関数呼出し後に、CCommandLineInfoクラスのm_strFileNameメンバー変数をチェックすると良いでしょう。

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-24 17:06
こんにちは、じゃんぬ です。
派手にかぶったので、修正投稿しました。

引用:

初心者さんの書き込み (2005-09-24 16:51) より:

今回のアプリケーション開発ではエクスプローラで関連
つけられた拡張子からの起動と実行ファイルからの起動
(exeをたたかれての起動)で処理を分ける必要があるの
ですが、アプリケーション側でどのように起動されたか
認識することは可能でしょうか?


関連付け起動であれば、コマンドラインに「ファイル パス」が入ってきます。

# ファイル名ではないですよ。


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
Tdnr_Sym
ぬし
会議室デビュー日: 2005/09/13
投稿数: 464
お住まい・勤務地: 明石・神戸
投稿日時: 2005-09-24 17:31
引用:

じゃんぬねっとさんの書き込み (2005-09-24 17:06) より:

関連付け起動であれば、コマンドラインに「ファイル パス」が入ってきます。

# ファイル名ではないですよ。



スイマセン。「ファイル名」ではなく正確に言うと「ファイルのフルパス」でしたorz

あと処理を分ける場所は、「SDI(シングルドキュメント)」,「MDI(マルチドキュメント)」,「ダイアログベース」によって変えたほうが良いかもしれません。

「ダイアログベース」の場合は、CWinApp::InitInstance()のオーバーライド関数内でよいと思いますが、SDIやMDIの場合にはデフォルトでMFCフレームワークが関連付けられたファイルを開こうとするので、注意が必要です。
初心者
会議室デビュー日: 2005/08/13
投稿数: 10
投稿日時: 2005-09-24 22:28
こんばんわ。初心者です。

Tdnr_Sym様、じゃうんぬねっと様

早速、ご教授頂きありがとうございます。
ご教授頂いた内容で処理を盛り込んでみます。

こちらをいつも拝見させて頂いて
おりますが非常に勉強になります。
1

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