2009-10-27 43 views
1

我需要一個應用程序/後臺進程和小工具之間的小型通信器,我認爲最簡單的方法就是創建自己的只有getText()和setText()的activex模塊。我需要每秒傳遞一次字符串。我猜測activex對象應該使用共享數據,以便另一個新的activexobject()(由javascript小工具頁面創建)可以訪問由EXE設置的數據。從後臺exe到activex的單向通信(側邊欄小工具)

什麼是最好的方式來做這個activex?我應該從運行過程中調用一些myactivex.setText()方法,但是在這種情況下如何在activex模塊之間共享數據?哪種THREADING模式可供選擇? INSTANCING會影響某些東西嗎?我應該從delphi GUI創建自動化對象嗎?

回答

2

您需要某種IPC(進程間通信)。你有許多選擇:

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

有很多方面,我只是描述了最流行的。如果你正在尋找一個快速和易於使用的解決方案,你可以檢查我的IPC (Named Pipes)

0

我認爲你最好的選擇是使用indy sockets來溝通2 o更多的應用程序。 對於應用程序之間的數據傳輸,我使用HTTP中的Content-Type頭來允許不同的表示(文本,二進制,XML)。

再見。

+0

我相信共享內存或PostMessage或類似會更快.. ?? – Tom 2009-10-27 09:13:21

0

你可以使用mailslots(也包括在JVCL我相信)。它們適用於單向通信。

0

最簡單的(我認爲)是使用SendMessage和WM_COPYDATA。

+0

你有這個工作的例子嗎? – Andrew 2009-12-13 09:32:09