Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

Использование sendmessage   Найти похожие ветки 

 
Vilux ©   (2004-03-15 19:19) [0]

Здравствуйте, мне надо из одной программы передать данные в другую программу посредством команды sendmessage. Например надо передать строку, как мне это реализовать? Как организовать прием данных в одной программе и отсылку в другой?


 
Vilux ©   (2004-03-15 19:19) [0]

Здравствуйте, мне надо из одной программы передать данные в другую программу посредством команды sendmessage. Например надо передать строку, как мне это реализовать? Как организовать прием данных в одной программе и отсылку в другой?


 
Гаврила   (2004-03-15 19:28) [1]

для начала нужно найти handle окна-примемника сообщения
если строку передать, но наверно надо посылать WM_COPYDATA


 
Гаврила   (2004-03-15 19:28) [1]

для начала нужно найти handle окна-примемника сообщения
если строку передать, но наверно надо посылать WM_COPYDATA


 
Vilux ©   (2004-03-15 19:48) [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;


 
Vilux ©   (2004-03-15 19:48) [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:55) [3]

Vilux ©   (15.03.04 19:48) [2]

Если передаете не более 2х4 байт и это не адреса, то можно использовать любое сообщение. Если нет - только WM_COPYDATA.


 
Юрий Зотов ©   (2004-03-15 19:55) [3]

Vilux ©   (15.03.04 19:48) [2]

Если передаете не более 2х4 байт и это не адреса, то можно использовать любое сообщение. Если нет - только WM_COPYDATA.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.025 c
1-1082415396
VPV
2004-04-20 02:56
2004.05.09
Minimize+Maximize и alClient


3-1081769871
Liona
2004-04-12 15:37
2004.05.09
Как вывести SQL запрос в DBComboBox?


14-1082377252
Родион
2004-04-19 16:20
2004.05.09
Работа с файлами


7-1080541322
Ciberrus
2004-03-29 10:22
2004.05.09
Реестр


14-1082017092
Empleado
2004-04-15 12:18
2004.05.09
nostalgie





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский