Как да изпратите информация (низ, изображение, запис) към друго приложение

Всичко за програмирането.

Главно меню

Как да изпратите информация (низ, изображение, запис) към друго приложение

Има много ситуации, в които искате да обмените информация между две приложения. Няма нужда да прибягвате до изпращане на съобщения през 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 :