Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Получить сообщение WM_COPYDATA
 
Добрый день .   Подскажите ,пожалуйста, как можно наладить обмен сообщениями между двумя приложениями VBA (в excel) , которые открыты в разных окнах(разные процессы) . Необходимость иметь 2 приложения обусловлена однопоточностью excel . Пробую через sendmessage , отправляю , а получить не понимаю как, примеры для vb весят excel .
       так посылаю  сообщение:
Код
Dim hwnd As Long
Dim cds As COPYDATASTRUCT
Dim sMsg As String
    
hwnd = FindWindow("XLMAIN", "Microsoft Excel - TR3.xlsm")

          sMsg = "письмо"

          cds.dwData = 0
          cds.cbData = Len(sMsg) * 2 + 2
          cds.lpData = StrPtr(sMsg)
          i = SendMessage(hwnd, WM_COPYDATA, 0&, cds)
и пробую принять
смотрю пример для vb от microsoft https://support.microsoft.com/en-us/kb/176058

и вот эта процедура приводит к мерцанию caption редактора vba и зависанию excel
Код
Public Sub Hook() 
 lpPrevWndProc = SetWindowLong(gHW, GWL_WNDPROC, _
          AddressOf WindowProc)
          Debug.Print lpPrevWndProc
      End Sub



Что тут можно сделать? Может есть какие-то более очевидные способы сообщения?
Изменено: Алексей Александрович - 01.12.2015 21:40:33
Страницы: 1
Наверх