Показать сообщение отдельно
  #1  
Старый 01.10.2013, 09:20
electrichesky electrichesky вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 8
Версия Delphi: Delphi XE2
Репутация: 10
Восклицание отправка текста в чужое окно через PostMessage

Ребза привет)

ситуация такая отправляю текст в чужое окно
через PostMessage

окна каждый раз разные..

сразу объясню почему выбрал этот метод.. поправьте меня если ошибаюсь
чтобы отсылать текст через SendMessage нужно знать точный "sub" хендл куда кидать текст
а поскольку иногда узнать его невозможно выбрал PostMessage чтоб просто проэмулировать
нажатие на клаве.. дело в том что когда фокусируешься на главном окне программы(target)
курсор находится именно в том месте куда нужно вставлять текст..

теперь о самой проблеме


вот так кидаю текст:
for I:=1 to Length(MyText) do
begin
if (MyText[i] <> #13) then
PostMessage(Target,WM_CHAR,Word(MyText[i]),0);

end;


обхожу #13 тк если несколько строк в тексте идёт отправка двух энтеров вместо одного (на #10 и на #13)

в блокноте всё работает идеально.. всё правильно отправляет..

но если это например текстовое поле в браузере (firefox)
не понимает..всё идёт в одну строку.. переход строчки не работает
без обхода #13 тоже не работает..

попытался вместо #13#10
отправлять enter:
PostMessage(Target, WM_KEYDOWN, VK_RETURN, 0);

первую строку отправляет а вместо следующих строк только переносы на новую строку..

я подумал вдруг в браузере выделяется текст автоматом
и когда эмулируется ентер он удаляется..

добавил перед VK_RETURN
PostMessage(Target, WM_KEYDOWN, VK_END, 0);
чтоб убралось выделение.. но всё равно не получается..



ммм :huh: помогите люди добрые))
Ответить с цитированием