小弟我在两个delphi程序里使用如上方法来进行通讯。虽然可以通讯,但如果其中程序的界面最小化的话,他们之间的通讯就会中断。请大家有什么方法可以解决这个有关问题

我在两个delphi程序里使用如下方法来进行通讯。虽然可以通讯,但如果其中程序的界面最小化的话,他们之间的通讯就会中断。请大家有什么方法可以解决这个问题。
procedure TViForm.SendmsgToSticthForm(Msgstr: string);
var

ds: TCopyDataStruct;
hd: THandle;
//Inf: PSfyzxtInformation;

begin
//
ds.cbData := Length(Msgstr)+1;

GetMem(ds.lpData,ds.cbData); //为传递的数据区分配内存

StrCopy (ds.lpData,PChar(Msgstr));

Hd := FindWindow(nil,Pchar('Sticth')); // 获得接受窗口的句柄

if Hd <> 0 then

SendMessage(Hd,WM_COPYDATA, 0,Cardinal(@ds)) // 发送 WM_COPYDATA消息

else
ShowMessage('Fail send data to sticth');

FreeMem(ds.lpData); //释放资源



end;


------解决方案--------------------
这里有一套免费的控件,功能强大,专门满足程序间通讯。
http://bak-o-soft.dk/Delphi/PBSharePack.aspx
------解决方案--------------------
直接用网络组件也一样呀!
------解决方案--------------------
FindWindow可能返回0,试试用全局变量保存FindWindow的值,而不是每次都去找
或者改成Socket通讯吧

------解决方案--------------------
建议使用命令管道
http://guanyue7613.blog.163.com/blog/static/885147420111074428261/