[delphi-users:3721] 異なるアプリ間での文字列の受け渡しに関して

318 views
Skip to first unread message

OE

unread,
Mar 12, 2014, 9:44:20 PM3/12/14
to delphi...@freeml.com
[開発環境 Delpho2010 Windows7(64)]

こんにちは、OEです。m(_ _)m


異なるフォーム有りアプリケーション間での
文字列の受け渡しに関して。
受信側のビジュアルコンポーネントでなく、変数に文字列を
渡せると理想的なのですが、そういうことは可能でしょうか。


例えば受信側のunit1にて、
procedure TForm1.FormCreate(Sender: TObject);
begin
SetWindowLong(Edit1.Handle, GWL_ID, 1000);
end;
としておき、送信側から、
var
hWindow , rHandle : HWND;
begin
hWindow := FindWindow('TForm1', nil);
rHandle := GetDlgItem (hWindow, 1000);
SendMessage(rHandle , WM_SETTEXT, 0, LPARAM(PChar('テキスト')));
とすると、受信側のEdit1に文字列を渡すことができると
知りました。
これをEdit1とか使わずに、public(?)に宣言した変数に文字列を
渡せると良いのですが。


クリップボード経由とかもあるかと思いますが、よりスマートに
シンプルに受け渡しできたら良いなと考えています。


何か良い方法がありましたら、ご助言頂けると助かります。
よろしくお願いいたします。





MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
【注文住宅】都道府県別の工務店理想の住宅ランキング
家を買うとき何にこだわる? ランキングシェア byGMO
http://ad.freeml.com/cgi-bin/sa.cgi?id=kYeT8
------------------------------------------------------[freeml byGMO]--

hosokawa

unread,
Mar 12, 2014, 9:57:27 PM3/12/14
to delphi...@freeml.com
OE さん

こんにちは。
細川です。

プロセス通信(プロセス間のデータのやり取り)については、いくつか方法があります。
多分、最も簡単なのが

WM_COPYDATA

を使う方法だと思います。
WM_COPYDATA でググると、いくらでも情報があるので、ググってみて下さい。

あとは、Pipe や MailSlot、Memory Mapped File とか、もちろん、TCP/IP でもできま
す。
興味があったら、これらのワードを使ってググってみて下さい。
Regards,
HOSOKAWA Jun
[S/G] SERIALGAMES Inc.
TEL: 03-5812-0980
FAX: 03-5812-0970
twitter: http://twitter.com/serialgames
twitter: http://twitter.com/flaver_sg
mailto: j...@serialgames.co.jp
fla:ver http://flaver.jp/


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
【注目資格 理学療法士】保険医療学部のある大学10選
理学療法士の大学&専門学校 ランキングシェア byGMO
http://ad.freeml.com/cgi-bin/sa.cgi?id=kYfdb
------------------------------------------------------[freeml byGMO]--

OE

unread,
Mar 12, 2014, 10:22:29 PM3/12/14
to delphi...@freeml.com
細川さん

早速のお返事ありがとうございます。

Delphi Acid Floorさんの記事がヒットしました。
> WM_COPYDATAを使う
> WM_COPYDATA を使うと簡単にプロセス間の通信ができます。
> ちょっとした文字列の受け渡しに使えます。
> http://www.wwlnk.com/boheme/delphi/tips/tec1630.htm

今からやってみようと思います。


それから、Pipe / MailSlot / Memory Mapped File / TCP/IP。
様々な方法のご提示もありがとうございました。
ポート開けて待機という方法も考えられますね。


色々と勉強になりました。
ありがとうございました。


MLホームページ: http://www.freeml.com/delphi-users

----------------------------------------------------------------------
【注文住宅】都道府県別の工務店理想の住宅ランキング
家を買うとき何にこだわる? ランキングシェア byGMO
http://ad.freeml.com/cgi-bin/sa.cgi?id=kYfwk
------------------------------------------------------[freeml byGMO]--

Reply all
Reply to author
Forward
0 new messages