既存アプリを自動で動作するようにするには?


キキ  2003-09-17 10:18:16  No: 52150  IP: [192.*.*.*]

開発環境
win2000pro:sp4
vc++6.0:sp5
現在のアプリはウィンドが立ちあがってボタンを押すと処理が実行するのですが、
これを起動と同時にボタンを押したかのように処理が走るようにしたいのです。
想定している流れは
アプリ起動 → ウィンドウは立ち上がらない → ボタンを押す(ソース上で) → アプリ終了という流れにしたいのです。わかる方がいれば教えてください。

編集 削除
YuO  2003-09-17 10:22:20  No: 52151  IP: [192.*.*.*]

アプリケーション側がそのような使い方を想定していて,
その為の方法があるならその方法を使います。
#ex) DDE, OLE等。

ないのであれば,ウィンドウ自体の表示は仕方がないですが,
ボタンの親ウィンドウに適切なIDとともにWM_COMMANDをPostしてみると,
そのような動作ができるかもしれません。

編集 削除
キキ  2003-09-17 11:55:47  No: 52152  IP: [192.*.*.*]

返信ありがとうございます。
もっと簡単にできるのかな?と思っていました。
考えていたのは、
現在 DoModalメソッドでウィンドウを立ち上げていますが
これを、渡された引数を判断して、DoModalメソッドは呼び出さない →
処理するメソッドを呼ぶ(例:OnButtonメソッド) → OnCancel()を呼び出し終了。
という流れにすればウィンドウがたちあがらずに、また勝手に終了して見た目は自動で動作しているように見えるかなと考えています。
 将来的には、1.アプリをダブルクリックで起動 2.他アプリがexeを起動して自動的に動作するように。の2つの動きになるよう考えています。

編集 削除
Euglena  2003-09-17 20:14:29  No: 52153  IP: [192.*.*.*]

趣旨が違っていたら申し訳ないんですが・・
「表示しない」という引数を受け取ったら、InitInstanceでDoModal()を呼び出す前に処理をしてFALSEで終わらせる、っていうのはダメなんでしょうかねぇ・・

編集 削除
hyuri  2003-09-17 20:43:58  No: 52154  IP: [192.*.*.*]

DoModalを呼び出さない・・・という風におっしゃてるので
ダイアログベースのアプリだと思うのですが
OnInitDaialogの中で処理したい関数を呼んで(例えばOnXXXBtnなど)
そのままreturn FALSE;とすればダイアログが表示される前に処理を
済ませることが出来ます。

ただしコントロールにメンバ変数がついている場合は初期化が
うまくいかない場合があるかも知れません。

編集 削除