開発環境 : Windows2000/VC++6.0 SDK
お世話になります。早速ですが
VC++6.0で、2つのEXE(A.EXE/B.EXE)を
作成し、A.EXEからB.EXEへ値を渡したいのですが、
どのようにすれば良いのでしょうか?
ちなみにA.EXEからその値を渡す時は
B.EXEは既に起動して動いている状態です。
(一応、INIファイル・環境変数・レジストリなど
なにかを間に介してなどと考えたのですが・・・
SendMessageみたいに一発で出来る方法が
あるのかな・・・と。)
宜しくお願いします。
B.EXEがWindowを持っており、そのハンドルをA.EXEが知っているなら、
SendMessageできます。
επιστημη さん
レスありがとう御座います。
(名前何と御呼びしてよいのでしょうか?)
>B.EXEがWindowを持っており、そのハンドルをA.EXEが知っているなら、
ハンドルは取得してます。
現在は、↓のようなロジックです。
** A.EXE **
hWnd = FindWindow(B, NULL);
SendMessage(hWnd, WM_COMMAND, IDB_OK, 0)
>SendMessageできます。
つまり、上のロジックのSendMessage関数の
パラメータをイジルのでしょうか?
素人考えですが、第四パラメータが空いているので
ここかな・・・なんて思ったりもするのですが、
受け取り側(B.EXE)は、どのようになるのでしょうか?
すみません。もう少し、ヒントを下さい。
渡そうとしている値がどんなものかわかりませんが、
一般的に、WM_COMMANDを利用するのはよろしくないのでは(一概には言えませんけど)。
ユーザ独自のメッセージを定義するか、
WM_COPYDATAを利用するのが肝要かと。
WM_COPYDATAメッセージが一番使いやすいでしょうね。
あるいは、RegisterWindowMessage()-APIで
他の誰も使っていないユニークなメッセージIDを
もらうことができます。
# どちらにせよ、ドキュメントを読んでください。
余計なお世話ではありますが、将来的にAとBとを異なるマシンで
動かすつもりがあるなら、SendMessageが使えなくなります。
そのときはsocketなりなんなり。
επιστημηさん、sugarさん
レス有り難うございます。
WM_COPYDATAというのを使うのが
一般的なんですね。
ここからは自力でやってみます。
ありがとう御座います。