電子書籍の厳選無料作品が豊富!

VC++2008にて、サーバとの通信プログラムを作成しています。

ディレクトリやファイル名を書き込んだ、
特定拡張子のファイルを作成し、
そのファイルの拡張子を、作成したプログラムに
関連付けし、ファイルをクリックした際に、
ファイル内データを読み込んで、書き込まれている
データにアクセスする機能を作成したいと考えています。
(通信プログラムを介したリンクファイル・
 ショートカットファイルといった意味合いです)

このショートカットファイルをダブルクリックした際、
関連付けた通信プログラムが自動起動するのですが、
ショートカットファイルからの起動かどうかを判別する
方法が分かりません。
また、通信プログラムが既に起動している場合は、
新たにプログラムが起動するのではなく、
立ち上がっている方のプログラム側が
ショートカットにて呼び出されたことについての
メッセージを受け取りたいのですが、
この方法についても実装方法が分かりません。

以上2点について、ご教授願えればと思います。
よろしく願いします。

A 回答 (1件)

・DDEでない関連付けをしたファイルをダブルクリックした場合



関連付けされて起動されたアプリの「実行時引数」に「ダブルクリックされた関連ファイル」が渡されます。

アプリは、1つだけではなく、ダブルクリックした回数だけ、複数起動されます。

・DDEの関連付けをしたファイルをダブルクリックした場合

DDEメッセージで、ダブルクリックされたファイル名が起動中のアプリに通知されるようにします。

起動された、または、起動中のアプリは、DDEメッセージにより開くべきファイル名の通知を受け取ります。

アプリは、1つだけ起動され、複数起動されたりしません。

但し「アプリを直接ダブルクリックして、直接起動した場合」には、複数のアプリが起動してしまいます。アプリの二重起動をさせたくない場合は、ミューテックス、セマフォを用いて、自己判断する必要があります。
    • good
    • 0
この回答へのお礼

Mutexを用いて、二重起動制御ができました。
ありがとうございます。

説明が不足していましたが、MFCアプリケーションの
Windowsエクスプローラ形式プロジェクトにて作成しています。
この際、DDEでないファイルのダブルクリック時は、
実行時引数をどこで取得できるのでしょうか?

またDDEファイルの場合、OnDDECommand()にて
メッセージを取得すると思われるのですが、
ネットで検索してみても、
DDEファイルの作成方法が分かりません。

初歩的な質問なのかもしれませんが、
参考になるサイトでもありましたら、提示頂けるとありがたいです。

お礼日時:2009/07/06 15:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!