Как да изпратите информация (низ, изображение, запис) към друго приложение
Всичко за програмирането.
Главно меню
Как да изпратите информация (низ, изображение, запис) към друго приложение
Има много ситуации, в които искате да обмените информация между две приложения. Няма нужда да прибягвате до изпращане на съобщения през TCP и сокети (защото тези приложения работят на една и съща машина). Можете просто да изпращате и получавате специално Windows съобщениеWM_COPYDATA.
Работата със съобщенията на Windows в Delphi е много проста: чрез изпращане на заявкаSendMessage с попълнени данниWM_COPYDATA.
WM_CopyData и TCopyDataStruct
СъобщениетоWM_COPYDATA ви позволява да изпращате данни от едно приложение към друго. Приложението получава данните в структураTCopyDataStruct.TCopyDataStruct е дефиниран в модула Windows.pas и включва структураCOPYDATASTRUCT, която съдържа данните за прехвърляне.
Предаване на низ чрез WM_COPYDATA
За да може приложението Sender да изпраща данни към Receiver,CopyDataStruct трябва да бъде попълнено и предадено чрез функциятаSendMessage. Ето как да изпратите стойност на низ чрезWM_COPYDATA :
ФункциятаSendData намира получателя чрез извикването на APIFindWindow :
В кода по-горе приложението Receiver беше намерено с помощта на API функциятаFindWindow, предаваща името на класа на главния формуляр.
Имайте предвид, чеSendMessage връща целочислена стойност, присвоена от кода, обработил съобщениетоWM_COPYDATA.
Приложението Receiver обработва съобщениетоWM_COPYDATA като:
ЗаписътTWMCopyData е деклариран като:
Изпращане на низ, запис или изображение
Изходният код демонстрира как да изпратите низ,запис и дори изображение към друго приложение.
Ето пример как да изпратите графикаTBitmap :