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

Вниз

Как с помощью SendMessage передать строку?   Найти похожие ветки 

 
Adonis   (2003-01-18 18:05) [0]

Пожалуйста, объясните на примере как с помощью SendMessage передать текстовую строку из одного приложения в другое(и как во втором приложении ее получить).
Заранее спасибо за помощь.


 
Song   (2003-01-18 18:16) [1]

WM_COPYDATA


 
Diamond Cat   (2003-01-19 04:37) [2]

Адонис, головой думать мы нехотим ты уже задавал этот вопрос, он был разжеван в ветке http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1041964192&n=5 причем там пример который должен срабатывать с любыми контролами способными принять текст но для особо умных даю упращенный вариант

в программе принимающий текст
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TReceiver = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
protected
procedure WMCopyData(var Msg: TWMCopyData); message WM_CopyData;
procedure WMSetText(var Msg: TWMSetText); message WM_SetText;
end;

var
Receiver: TReceiver;

implementation

{$R *.DFM}

procedure TReceiver.Button1Click(Sender: TObject);
begin
Edit1.Clear;
end;

procedure TReceiver.WMCopyData(var Msg: TWMCopyData);
begin
Edit1.Text := String(PChar(Msg.CopyDataStruct^.lpData));
end;

procedure TReceiver.WMSetText(var Msg: TWMSetText);
begin
if Visible
then Edit1.Text := String(Msg.Text)
else inherited
end;

end.

в программе отсылающей текст

unit Unit2;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;

type
TSender = class(TForm)
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
end;

var
Sender: TSender;

implementation

{$R *.DFM}

procedure TSender.Button1Click(Sender: TObject);
var Data: TCopyDataStruct;
begin
Data.cbData := Length(Edit1.Text);
Data.lpData := PChar(Edit1.Text);
SendMessage(FindWindow("TReceiver","Receiver"),
WM_CopyData, Handle, Integer(@Data))
end;

procedure TSender.Button2Click(Sender: TObject);
begin
SendMessage(FindWindow("TReceiver","Receiver"),
WM_SetText, 0, Integer(PChar(Edit1.Text)))
end;
end.
Надеюсь вопросов типа "А как вводить текст?" не будет :о)



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

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

Наверх





Память: 0.55 MB
Время: 0.036 c
14-17343
Supreme
2003-02-16 12:11
2003.03.06
Сложилась такая ситуация... Нужен совет


4-17436
elf_123
2003-01-04 00:39
2003.03.06
Хуки CBT


14-17394
Дмитрий К.К.
2003-02-19 06:12
2003.03.06
Именинники 19 февраля


3-16900
AndrewK
2003-02-14 19:28
2003.03.06
Программное добавление логина и пользователя в базу данных


4-17435
KPV-10k
2002-12-19 21:04
2003.03.06
Оконо во весь экран...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский