exe間でデータの送受信をするには

解決


PG  2009-07-07 12:47:06  No: 35051  IP: 192.*.*.*

皆さんこんにちは。
お世話になっております。

今回もまた、皆さんのお力を拝借したくカキコさせていただきます。

自作exe間でデータの送受信を行いたいと思っています。
すでに2つのexeが起動しているものに関しては送受信ができるのですが、
1つを起動して、もう片方を起動させた時にそこにデータを送信したいのですが、
何かいい方法はないでしょうか。

編集 削除
Manbon  2009-07-07 15:26:07  No: 35052  IP: 192.*.*.*

よくわかりませんが、起動したときに、既に起動している
exeにメッセージを送り、受け取ったほうはそのときに
送信すればいいのではないかと思うのですが・・・

編集 削除
PG  2009-07-07 17:12:19  No: 35053  IP: 192.*.*.*

知識不足で申し訳ないのですが、
メッセージというのは・・・

編集 削除
ttt  2009-07-07 17:30:11  No: 35054  IP: 192.*.*.*

単純なデータならコマンドの引数で渡してやればいいんじゃないでしょうか。

program := 'test.exe'; // 起動するプログラム名
data := '100 200 300'; // 渡したいデータ
CreateProcess(program, AnsiQuotedStr(program, '"') +  ' ' + data, nil, nil, ...);

起動された側ではParamCount, ParamStr関数を使って引数を取り出せます。

for i := 1 to ParamCount do ShowMessage(ParamStr(i));
// "100" "200" "300" が順に表示されるはず

> メッセージというのは・・・
起動したexe間で送受信ができているなら、すでにメッセージを使っているんじゃないですか?
とりあえずはヘルプの「SendMessage」「message指令」あたりを調べてみてください。

編集 削除
TS  2009-07-07 17:49:31  No: 35055  IP: 192.*.*.*

>すでに2つのexeが起動しているものに関しては送受信ができるのですが、
これが出来ているのならManbonさんの回答になると思いますが。

ちなみにいつもお世話になっています、
Mr.XRAYさんの所にもいくつかプログラム例があります。
http://mrxray.on.coocan.jp/Delphi/plSamples/index.htm

編集 削除
PG  2009-07-07 19:52:47  No: 35056  IP: 192.*.*.*

最初に起動するexe(送信側)を仮にAとし、Aから受信側のexeBを起動させます。
Bを起動している間はAはForm1.Hideで隠して、Bが終了したらShowで表示させてます。
それでも起動後にデータを受信することは可能でしょうか?

編集 削除
通りすがり  2009-07-07 20:03:04  No: 35057  IP: 192.*.*.*

> それでも起動後にデータを受信することは可能でしょうか?

tttさんが仰っている「引数のコマンド渡し」であれば
起動直後にデータを渡せますよ。

編集 削除
PG  2009-07-07 20:24:11  No: 35058  IP: 192.*.*.*

なるほど!!
受信できました。
皆さんありがとうございました!

編集 削除
通りすがりの初心者  2009-07-08 09:52:03  No: 35059  IP: 192.*.*.*

解決済みなのに申し訳ないのですが、
これを参考にプログラムしていました。

>>CreateProcess(program, AnsiQuotedStr(program, '"') +  ' ' + data, nil, nil, ...);

について、どの部分がどういった意味なのかどなたかご教授いただけないでしょうか。

編集 削除
TS  2009-07-08 12:40:25  No: 35060  IP: 192.*.*.*

検索を使いましょう。

http://mix.search.goo.ne.jp/#web,oshiete/CreateProcess%2Bdelphi

編集 削除