Как отправить короткую строку из приложения Visual Basic в приложение Delphi?
Мне нужно отправить короткую строку (менее 30 байт, но отправляется каждую секунду) из одного приложения VB в приложение Delphi. Возможно ли это, используя функции CopyDataStruct, WM_COPYDATA и SendMessage в Windows?
2 ответа
Я бы сказал, что 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. Другой способ - записать строку во временную область реестра, а затем вызвать другую программу, чтобы прочитать ее и удалить временный ключ реестра после завершения. Вы также можете передать строку в качестве параметра в командной строке и просто выполнить программу.