односторонняя связь из фонового exe в activex (гаджет боковой панели) - PullRequest
1 голос
/ 27 октября 2009

Мне нужен небольшой коммуникатор между приложением / фоновым процессом и гаджетом, я думаю, что проще всего создать собственный модуль activex, который имеет только getText () и setText (). Мне нужно передать строку один раз в секунду или около того. Я предполагаю, что объект activex должен использовать общие данные, чтобы другой новый activexobject () (созданный страницей гаджета javascript) имел доступ к данным, установленным EXE.

Каков наилучший способ сделать это ActiveX? я должен вызвать какой-то метод myactivex.setText () из запущенного процесса, но как сделать так, чтобы в этом случае данные распределялись между модулями activex? какой режим резьбы выбрать? ВЛИЯНИЕ НА МАТЕРИАЛ влияет? Должен ли я создать объект автоматизации из Delphi GUI?

Ответы [ 4 ]

2 голосов
/ 27 октября 2009

Вам нужен своего рода IPC (межпроцессное взаимодействие). У вас есть много вариантов:

  • Sockects
  • Сообщения
  • Именованные трубы
  • Общая память
  • 1012 * почтовые слоты *
  • Файлы (уведомления) ....

Есть много способов, я только что описал самые популярные. Если вы ищете быстрое и простое в использовании решение, вы можете проверить мой IPC (именованные каналы)

0 голосов
/ 27 октября 2009

самое простое (я думаю) - использовать SendMessage с WM_COPYDATA.

0 голосов
/ 27 октября 2009

Вы можете использовать почтовые ящики (также, я полагаю, включить в JVCL). Они хорошо работают для односторонней связи.

0 голосов
/ 27 октября 2009

Я думаю, что ваш лучший вариант - использовать инди-сокеты , чтобы связать еще 2 приложения. Для передачи данных между приложениями я использую заголовки Content-Type в HTTP, чтобы разрешить различные представления (Текст, двоичный файл, XML).

Bye.

...