Как послать символ в другое приложение
Код, который при нажатии на кнопку отправляет букву А в Блокнот Windows. Блокнот должен быть запущен.
procedure TForm1.btnSendCharClick(Sender: TObject); var wnd: HWND; child: integer; begin { Находим главное окно приложения } wnd:= FindWindow('Notepad', nil); { Находим поле ввода текста } child:= ChildWindowFromPoint(wnd, point(50, 50)); { Посылаем символ в поле ввода (букву А) } SendMessage(child, WM_CHAR, Ord('A'), 0); end;
Пример с отправкой целой строки и установкой курсора в заданную позицию:
procedure TForm1.Button1Click(Sender: TObject); var wnd: HWND; child: integer; s:string; begin s:= 'Any text...'; { Находим главное окно приложения } wnd:= FindWindow('Notepad', nil); { Находим поле ввода текста } child:= ChildWindowFromPoint(wnd, point(50, 50)); //SendMessage(child,EM_SETSEL,5,5); // установить курсор в заданную позицию SendMessage(child,EM_REPLACESEL,10,lparam(PChar(s))); // 10-позиция курсора,s-строка { Посылаем символ в поле ввода (букву А) } // SendMessage(child, WM_CHAR, Ord('A'), 0); end;
Комментарии