![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Использование sendmessage [D6, WinXP]
Vilux © (2004-03-15 19:19:00)Здравствуйте, мне надо из одной программы передать данные в другую программу посредством команды sendmessage. Например надо передать строку, как мне это реализовать? Как организовать прием данных в одной программе и отсылку в другой?
Юрий Зотов (2004-03-15 19:55:00) [1]Vilux © (15.03.04 19:48) [2]
Если передаете не более 2х4 байт и это не адреса, то можно использовать любое сообщение. Если нет - только WM_COPYDATA.
Vilux (2004-03-15 19:48:00) [2]Спасибо, по поиску команды WM_COPYDATA нашел работающий пример
Как передать строку другому приложению
-----------------------------------------------------------------
получатель:
procedure ReceiveMessage (var Msg: TMessage);
message WM_COPYDATA;
...
procedure TFormReceive.ReceiveMessage;
var
pcd: PCopyDataStruct;
begin
pcd := PCopyDataStruct(Msg.LParam);
Caption := PChar(pcd.lpData);
end;
отправитель:
procedure TFormXXX.Button1Click(Sender: TObject);
var
cd: TCopyDataStruct;
begin
cd.cbData := Length(Edit1.Text) + 1;
cd.lpData := PChar(Edit1.Text);
SendMessage(FindWindow('TFormReceive', nil), WM_COPYDATA, 0, LParam(@cd));
end;
Гаврила (2004-03-15 19:28:00) [3]для начала нужно найти handle окна-примемника сообщения
если строку передать, но наверно надо посылать WM_COPYDATA