別EXEへの値渡し – プログラミング – Home

通知
すべてクリア

[解決済] 別EXEへの値渡し


ひろし
 ひろし
(@ひろし)
ゲスト
結合: 23年前
投稿: 24
Topic starter  

開発環境 : Windows2000/VC++6.0 SDK

お世話になります。早速ですが
VC++6.0で、2つのEXE(A.EXE/B.EXE)を
作成し、A.EXEからB.EXEへ値を渡したいのですが、
どのようにすれば良いのでしょうか?
ちなみにA.EXEからその値を渡す時は
B.EXEは既に起動して動いている状態です。

(一応、INIファイル・環境変数・レジストリなど
なにかを間に介してなどと考えたのですが・・・
SendMessageみたいに一発で出来る方法が
あるのかな・・・と。)

宜しくお願いします。


引用未解決
トピックタグ
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

B.EXEがWindowを持っており、そのハンドルをA.EXEが知っているなら、
SendMessageできます。


返信引用
ひろし
 ひろし
(@ひろし)
ゲスト
結合: 23年前
投稿: 24
Topic starter  

επιστημη さん
レスありがとう御座います。
(名前何と御呼びしてよいのでしょうか?)

>B.EXEがWindowを持っており、そのハンドルをA.EXEが知っているなら、

ハンドルは取得してます。
現在は、↓のようなロジックです。

** A.EXE **
hWnd = FindWindow(B, NULL);
SendMessage(hWnd, WM_COMMAND, IDB_OK, 0)

>SendMessageできます。
つまり、上のロジックのSendMessage関数の
パラメータをイジルのでしょうか?

素人考えですが、第四パラメータが空いているので
ここかな・・・なんて思ったりもするのですが、
受け取り側(B.EXE)は、どのようになるのでしょうか?

すみません。もう少し、ヒントを下さい。


返信引用
sugar
 sugar
(@sugar)
ゲスト
結合: 24年前
投稿: 448
 

渡そうとしている値がどんなものかわかりませんが、
一般的に、WM_COMMANDを利用するのはよろしくないのでは(一概には言えませんけど)。
ユーザ独自のメッセージを定義するか、
WM_COPYDATAを利用するのが肝要かと。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

WM_COPYDATAメッセージが一番使いやすいでしょうね。

あるいは、RegisterWindowMessage()-APIで
他の誰も使っていないユニークなメッセージIDを
もらうことができます。

# どちらにせよ、ドキュメントを読んでください。


返信引用
επιστημη
 επιστημη
(@επιστημη)
ゲスト
結合: 22年前
投稿: 1301
 

余計なお世話ではありますが、将来的にAとBとを異なるマシンで
動かすつもりがあるなら、SendMessageが使えなくなります。
そのときはsocketなりなんなり。


返信引用
ひろし
 ひろし
(@ひろし)
ゲスト
結合: 23年前
投稿: 24
Topic starter  

επιστημηさん、sugarさん
レス有り難うございます。

WM_COPYDATAというのを使うのが
一般的なんですね。

ここからは自力でやってみます。
ありがとう御座います。


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

 まあ、参考までに、、、
http://www24.cds.ne.jp/~neg/pro/piyo1/window/cpydat.html


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました