![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
послать текст в поле Edit другого приложения [D7, XP]
Avokain © (2007-02-16 17:45:00)есть 2 приложения 1 должно послать текст в поле Edit др приложения
можно ли это сделать через sendmessage и как тогда найти хэндл именно этого Edit?
Avokain (2007-02-17 18:13:00) [1]Причем здесь сеть то?
Observer (2007-02-17 15:55:00) [2]Используй ServerSocket и ClientSocket на вкладке Internet
Avokain (2007-02-17 15:03:00) [3]Немного поправлю Calibr'a
подсказали мне тут фишка вот в чем
h := FindWindowEx(Handle, 0, 'EDIT', 'То что у вас изначально задано в поле Edit'); если конечная прога НЕ на делфи
h := FindWindowEx(Handle, 0, 'Tedit', 'То что у вас изначально задано в поле Edit');если она НА делфи
SendMessage(h, WM_SETTEXT, 0, LongInt(PCHAR(s))); у меня так работало
приведу код :
procedure TForm1.Button1Click(Sender: TObject);
var
h1, h2: hwnd;s:string;
begin
s:='19:06:00'
h1 := FindWindow(nil, 'AC');
h2 := FindWindowEx(h1, 0, 'TEdit', '18:06:00');
SendMessage(h2, WM_SETTEXT, 0, longint(Pchar(s)));
end;
AC - так называется заголовок др. проги
18:06:00 - Это текст который я задал непосредсвенно при разработке др проги в свойсве Text. При чем даже если этот текст изменить в процессе хода программы то хандл все равно ловится(хз почему)
S- текст для посылки
vasIZmax (2007-02-17 02:08:00) [4]не получается у меня, хоть у баньте.
получилось только заголовок окна сменить и все. а как в едит передать текст(?), не доходит никак....
Calibr (2007-02-16 21:27:00) [5]Узнаешь Handle окна 2-го приложения (FindWindow(<класс окна>, <заголовок окна>), если не знаешь заголовок или класс заменяешь на nil)
h: hWnd;
s: String;
...
h := FindWindowEx(Handle, 0, 'edit', nil);
s := 'Нужный текст!';
SendMessage(h, WM_SETTEXT, 0, lParam(s));
или
s := 'Нужный текст!';
EnumChildWindows(handle, @ENUM, 0);
function ENUM(h: hWnd; l: Integer): Boolean;stdcall;
var
Buff: array[0..127] of Char;
begin
GetClassName(h, Buff, SizeOf(Buff));
if String(Buff) = 'TEdit' then
SendMessage(h, WM_SETTEXT, 0, lParam(s));
Result := true;
end;
Должно получиться!