Форум: "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.45 MB
Время: 0.01 c