![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Подскажите как с помощью SendMessage организовать передачу строки от одной програмы другой?
Или подскажите свой, более рациональный способ. Желательно с примером. Последний раз редактировалось Zum, 30.05.2006 в 01:41. |
|
#2
|
||||
|
||||
|
Пример передает текст "Test" в текстовое поле Блокнота.
Код:
var
i: integer;
Wnd: hWnd;
TrayWnd, BtnWnd: hWnd; // для Button
Control : array [0..127] of char;
AText: string;
begin
AText:=Edit5.Text;
// найти окно самого приложения
Wnd:=FindWindow(nil,PChar('Untitled - Notepad'));
// в нем найти первое (по Z-порядку) дочернее окно и получить его класс
Wnd:=GetWindow(Wnd,GW_CHILD);
GetClassName(Wnd, Control, SizeOf(Control));
// ищем нужный контрол
while Control<>'Edit' do // имя контрола
begin
Wnd:=GetWindow(Wnd, GW_HWNDNEXT);
GetClassName(Wnd, Control, SizeOf(Control));
end;
// записать в него нужный текст
SendMessage(Wnd, WM_SETTEXT, 0, Integer(PChar(AText)));
end; |