皆さんこんにちは。
お世話になっております。
今回もまた、皆さんのお力を拝借したくカキコさせていただきます。
自作exe間でデータの送受信を行いたいと思っています。
すでに2つのexeが起動しているものに関しては送受信ができるのですが、
1つを起動して、もう片方を起動させた時にそこにデータを送信したいのですが、
何かいい方法はないでしょうか。
よくわかりませんが、起動したときに、既に起動している
exeにメッセージを送り、受け取ったほうはそのときに
送信すればいいのではないかと思うのですが・・・
知識不足で申し訳ないのですが、
メッセージというのは・・・
単純なデータならコマンドの引数で渡してやればいいんじゃないでしょうか。
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指令」あたりを調べてみてください。
>すでに2つのexeが起動しているものに関しては送受信ができるのですが、
これが出来ているのならManbonさんの回答になると思いますが。
ちなみにいつもお世話になっています、
Mr.XRAYさんの所にもいくつかプログラム例があります。
http://mrxray.on.coocan.jp/Delphi/plSamples/index.htm
最初に起動するexe(送信側)を仮にAとし、Aから受信側のexeBを起動させます。
Bを起動している間はAはForm1.Hideで隠して、Bが終了したらShowで表示させてます。
それでも起動後にデータを受信することは可能でしょうか?
> それでも起動後にデータを受信することは可能でしょうか?
tttさんが仰っている「引数のコマンド渡し」であれば
起動直後にデータを渡せますよ。
なるほど!!
受信できました。
皆さんありがとうございました!
解決済みなのに申し訳ないのですが、
これを参考にプログラムしていました。
>>CreateProcess(program, AnsiQuotedStr(program, '"') + ' ' + data, nil, nil, ...);
について、どの部分がどういった意味なのかどなたかご教授いただけないでしょうか。
検索を使いましょう。
http://mix.search.goo.ne.jp/#web,oshiete/CreateProcess%2Bdelphi
ツイート | ![]() |