【发布时间】:2011-04-05 10:01:33
【问题描述】:
我需要从一个 VB 应用程序向 Delphi 应用程序发送一个短字符串(小于 30 个字节,但每秒发送一次)。这可能吗,在 Windows 中使用 CopyDataStruct、WM_COPYDATA 和 SendMessage 函数?
【问题讨论】:
标签: vb.net delphi sendmessage wm-copydata
我需要从一个 VB 应用程序向 Delphi 应用程序发送一个短字符串(小于 30 个字节,但每秒发送一次)。这可能吗,在 Windows 中使用 CopyDataStruct、WM_COPYDATA 和 SendMessage 函数?
【问题讨论】:
标签: vb.net delphi sendmessage wm-copydata
我会说 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 主窗体的窗口句柄。
【讨论】:
这听起来像是您将使用 DDE 来完成的事情。另一种方法是将字符串写入注册表中的临时区域,然后调用其他程序读取它并在完成后删除临时注册表项。您也可以在命令行中将字符串作为参数传递,然后执行程序。
【讨论】: