DOBON.NET DOBON.NETプログラミング掲示板過去ログ

起動中のexeでファイルを開くには

環境/言語:[VB6.0]
分類:[VB6以前]

いつもお世話になっております。

開くexeとそれに対応したファイルを指定し、
exeが起動していなければそのexeを起動しつつ、
既に起動しているなら、その起動しているexe上でファイルを開く、
という処理がしたいのですが・・・
shellexeuteが非常に惜しいのですが、これを使用すると、
常にexeごと起動してしまいます。重複起動はさせたくないのです。
何か方法をご存知の方いましたら、ご教授願えませんでしょうか?
よろしくお願い致します。

一応、そのアプリケーションとはAutoCADです。
> 一応、そのアプリケーションとはAutoCADです。
AutoCADは詳しくないのですが、AutoCADの設定によって、
一つ起動している状態でもう一つファイルを開こうとすると、
・内部にウィンドウを作って同じメインウィンドウに表示する。
・もう一つのAutoCADを起動する
場合があるようです。
一度AutoCADの設定を見直してみては?

※AutoCAD以外で多重起動が防止されないようなアプリケーション(メモ帳など)では、
 残念ながら
> 既に起動しているなら、その起動しているexe上でファイルを開く
 という操作に対する一般的な手法は無いと思います。
> 開くexeとそれに対応したファイルを指定し、
> exeが起動していなければそのexeを起動しつつ、
> 既に起動しているなら、その起動しているexe上でファイルを開く、
> という処理がしたいのですが・・・

AutoCADのバージョンにもよりますが、とりあえず、
Set oApp = Getobject( ,"AutoCAD.Application")
のように、オートメーション操作で制御できるような気もします。

# AutoCADを制御した事が無いので、具体的な操作方法は知りませんが……。
## LT版だと駄目かも。
ガッさん、魔界の仮面弁士さん、お返事ありがとうございます。
魔界の仮面弁士のおっしゃるように、オートメーション操作で解決できました。

Set AcadApp = GetObject("AutoCAD.Application")
で、エラーになるなら
Set AcadApp = CreateObject("AutoCAD.Application")
取れたなら
Set AcadDoc = AcadApp.Documents.Open(strFileName)
という形でうまく行きました。

ありがとうございました。
ちなみに、使用AutoCADのバージョンは2002(正確にはMap6)
でした。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板