从后台exe到activex的单向通信(侧栏小工具)

时间:2009-10-27 08:40:44

标签: delphi com activex

我需要在应用程序/后台进程和小工具之间建立一个小型通信器,我认为最简单的方法就是创建自己的activex模块,它只有getText()和setText()。我需要每秒传递一次字符串。我想activex对象应该使用共享数据,以便另一个新的activexobject()(由javascript小工具页面创建)可以访问EXE设置的数据。

做这个activex的最佳方法是什么?我应该从运行进程中调用一些myactivex.setText()方法,但是在这种情况下如何在activex模块之间共享数据?哪种穿线模式可供选择? INSTANCING会影响某些事情吗?我应该从delphi GUI创建Automation对象吗?

4 个答案:

答案 0 :(得分:2)

您需要某种IPC(进程间通信)。你有很多选择:

  • Sockects
  • 消息
  • 命名管道
  • 共享内存
  • 邮筒
  • 文件(通知) ....

有很多方法,我刚才描述了最受欢迎的方法。如果您正在寻找快速且易于使用的解决方案,可以查看我的IPC (Named Pipes)

答案 1 :(得分:0)

我认为您最好的选择是使用indy sockets来传达另外两个应用程序。 对于应用程序之间的数据传输,我使用HTTP中的Content-Type标头来允许不同的表示(文本,二进制,XML)。

再见。

答案 2 :(得分:0)

你可以使用mailslots(我也相信在JVCL中也包括在内)。它们适用于单向通信。

答案 3 :(得分:0)

最简单的(我认为)是使用带有WM_COPYDATA的SendMessage。