如何从Visual Basic应用程序发送短字符串到Delphi应用程序?

时间:2011-04-05 10:01:34

标签: vb.net delphi sendmessage wm-copydata

我需要发送一个短字符串(少于30个字节,但每秒发送一次),从一个VB应用程序发送到Delphi应用程序..这可能,在Windows中使用CopyDataStruct,WM_COPYDATA和SendMessage函数吗?

2 个答案:

答案 0 :(得分:3)

我想说WM_COPYDATA是完成此任务的最佳方式。您只需要获取Delphi主表单,例如,为WM_COPYDATA实现一个消息处理程序。

在Delphi端,它看起来像这样:

TMyMainForm = class(TForm)
protected
  procedure WMCopyData(var Msg: TWMCopyData); message WM_COPYDATA;
end;

procedure TMyMainForm.WMCopyData(var Msg: TWMCopyData);
begin
  //do something with Msg.lpData
end;

您的VB代码需要获取Delphi主窗体的窗口句柄。

答案 1 :(得分:0)

这听起来像是你用DDE来完成的事情。另一种方法是将字符串写入注册表中的临时区域,然后调用其他程序读取它并在完成后删除临时注册表项。您还可以在命令行中将字符串作为参数传递,然后执行该程序。