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

发布于 2024-10-30 13:31:14 字数 123 浏览 4 评论 0原文

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

I need to send a short string, (less than 30 bytes, but sent every second), from one VB application, to a Delphi application.. is this possible, using CopyDataStruct, WM_COPYDATA and SendMessage functions in Windows?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你爱我像她 2024-11-06 13:31:14

我想说 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 主窗体的窗口句柄。

I would say that WM_COPYDATA is the perfect way to do this. You just need to get your Delphi main form, say, to implement a message handler for WM_COPYDATA.

At the Delphi end it looks something like this:

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;

Your VB code will need to obtain the window handle of your Delphi main form.

十二 2024-11-06 13:31:14

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

This sounds like the kind of thing that you would use DDE to accomplish. Another way would be to write a string into a temporary area in the registry and then call the other program to read it and delete the temporary registry key once finished. You could also pass the string as a parameter in the command line and just exec the program.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文