- - PR -
関連付けられたファイルからのアプリケーション起動について
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-09-24 16:51
こんにちは。
現在、初めてVC.NET(WindowsXP Proffesional) を用いてアプリケーション開発に携わっております。 今回のアプリケーション開発ではエクスプローラで関連 つけられた拡張子からの起動と実行ファイルからの起動 (exeをたたかれての起動)で処理を分ける必要があるの ですが、アプリケーション側でどのように起動されたか 認識することは可能でしょうか? 具体的には 1.関連付けからの起動→そのファイルのあるフォルダ内のファイル一覧画面を出力 2.実行ファイルからの起動→ファイル一覧に何も表示せず画面出力 という処理が必要になります。 MFCや標準APIで認識する方法がないかご存知の方が おられましたらご教授お願い致します。 | ||||
|
投稿日時: 2005-09-24 17:02
こんにちは。Tdnr_Symです。
関連付けられたファイルから起動された場合は、コマンドラインにそのファイル名が引数として取得できるはずです。 MFCアプリケーションであれば、CxxxApp(CWinAppの派生クラス)の InitInstance関数をオーバーライドして(ウィザードから作成された場合にはすでに存在すると思います。) ParseCommandLine関数呼出し後に、CCommandLineInfoクラスのm_strFileNameメンバー変数をチェックすると良いでしょう。 | ||||
|
投稿日時: 2005-09-24 17:06
こんにちは、じゃんぬ です。
派手にかぶったので、修正投稿しました。
関連付け起動であれば、コマンドラインに「ファイル パス」が入ってきます。 # ファイル名ではないですよ。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-09-24 17:31
スイマセン。「ファイル名」ではなく正確に言うと「ファイルのフルパス」でしたorz あと処理を分ける場所は、「SDI(シングルドキュメント)」,「MDI(マルチドキュメント)」,「ダイアログベース」によって変えたほうが良いかもしれません。 「ダイアログベース」の場合は、CWinApp::InitInstance()のオーバーライド関数内でよいと思いますが、SDIやMDIの場合にはデフォルトでMFCフレームワークが関連付けられたファイルを開こうとするので、注意が必要です。 | ||||
|
投稿日時: 2005-09-24 22:28
こんばんわ。初心者です。
Tdnr_Sym様、じゃうんぬねっと様 早速、ご教授頂きありがとうございます。 ご教授頂いた内容で処理を盛り込んでみます。 こちらをいつも拝見させて頂いて おりますが非常に勉強になります。 |
1