Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Результаты опроса: Способ ввода текста оптимален?если нет,то прошу предложить свой способ в комментариях
Оптимален 1 25.00%
Нет 3 75.00%
Можно лучше,но и такой подойдёт 0 0%
Голосовавшие: 4. Вы еще не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.04.2011, 15:25
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию алгоритм ввода текста в заданное окно

нужна программа которая в заданную область экрана вводит заданный текст.
перехожу на сайт,используя данную команду:

WinExec('"C:\Users\123\AppData\Loca l\Google\Chrome \Application\chrome.exe" http://www.ya.ru/',SW_show);

далее пытаюсь в адресную строку ввести какой-либо запрос вот так:

wnd:=FindWindow('Chrome_WidgetWin_0',nil);
if wnd <>0 then
begin
wnd1:=FindWindowEx (wnd,0,'Chrome_RenderWidgetHostHWND',nil);
SetWindowText(wnd1,'www.ya.ru');
end;

однако ничего не происходит,хотя цикл выполняется.не понимаю в чём ошибка.буду признателен за помощь)
Ответить с цитированием
  #2  
Старый 15.04.2011, 15:29
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Так в заданную область экрана или в некий абстрактный контрол?
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 15.04.2011, 15:37
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

вообще желательно в абстрактный,потому что 2 экрана и координаты соответственно меняются)
Ответить с цитированием
  #4  
Старый 15.04.2011, 15:54
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Если в абстрактный то SetWindowText не во всех случаях работать будет. Можешь еще попробовать послать сообщение WM_SETTEXT, но тоже не факт что сработает.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #5  
Старый 15.04.2011, 16:11
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Если в абстрактный то SetWindowText не во всех случаях работать будет. Можешь еще попробовать послать сообщение WM_SETTEXT, но тоже не факт что сработает.
а можно пример если не сложно?)
Ответить с цитированием
  #6  
Старый 15.04.2011, 16:18
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Примерно так:
Код:
wnd:=FindWindow('Chrome_WidgetWin_0',nil);
 if wnd <>0 then
   begin
     wnd1:=FindWindowEx (wnd,0,'Chrome_RenderWidgetHostHWND',nil);
     SendMessage(and1,WM_SETTEXT,0,Integer(PChar('Some text')));
   end;
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #7  
Старый 15.04.2011, 16:23
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
SetWindowText cannot change the text of a control in another application.
To set the text of a control in another process, send the WM_SETTEXT message directly instead of calling SetWindowText.
http://msdn.microsoft.com/en-us/libr...46(VS.85).aspx
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #8  
Старый 15.04.2011, 16:42
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Примерно так:
Код:
wnd:=FindWindow('Chrome_WidgetWin_0',nil);
 if wnd <>0 then
   begin
     wnd1:=FindWindowEx (wnd,0,'Chrome_RenderWidgetHostHWND',nil);
     SendMessage(and1,WM_SETTEXT,0,Integer(PChar('Some text')));
   end;
чо то всё равно не пашет
Код:
WinExec('"C:\Users\Наталия\AppData\Local\Google\Chrome\Application\chrome.exe" http://www.ya.ru/',SW_show);
sleep(2000);
wnd:=FindWindow('Chrome_WidgetWin_0',nil);
 if wnd <>0 then
   begin
     wnd1:=FindWindowEx (wnd,0,'Chrome_RenderWidgetHostHWND',nil);
     SendMessage(wnd1,WM_SETTEXT,0,Integer(PChar('www.yan.ru')));
   setcursorpos (300,60);
   end;

с помощью сеткурсор убеждаюсь что цикл выполняется,но ничего не вводится в поисковую строку.пробывал на мозиле всё равно.
есть подозрение что путаю что либо в названиях окон.я с помощью spy++ определяю их названия.в wnd я записываю название всего окна (навожу прицел на название вкладки),а внд1 хромрендервиджет это название строки для поиска.может тут что то напутал и поэтому не пашет?)

Последний раз редактировалось Admin, 16.04.2011 в 12:49.
Ответить с цитированием
  #9  
Старый 15.04.2011, 16:52
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

сделал вот так
Код:
begin
{WinExec('"C:\Users\Наталия\AppData\Local\Google\Chrome\Application\chrome.exe" http://www.ya.ru/',SW_show);}
sleep(2000);
wnd:=FindWindow('Chrome_WidgetWin_0',nil);
 if wnd <>0 then
   begin
     wnd1:=FindWindowEx (wnd,0,'Chrome_RenderWidgetHostHWND',nil);
     setcursorpos (600,30);
     if wnd1 <>0 then
     begin
     SendMessage(wnd1,WM_SETTEXT,0,Integer(PChar('www.yan.ru')));
     setcursorpos (300,60);
     end
     else setcursorpos (0,0);
   end;
Админ: Пользуемся тегами, иначе последуют санкции!

цикл с wnd1 вообще не выполняется,выполняется ветка else

Последний раз редактировалось Admin, 16.04.2011 в 12:49.
Ответить с цитированием
  #10  
Старый 15.04.2011, 17:11
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Ну значит не нашел он такого окна
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #11  
Старый 15.04.2011, 17:12
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Ну значит не нашел он такого окна

ну это то я понял)вопрос почему?)
Ответить с цитированием
  #12  
Старый 15.04.2011, 20:29
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

посоны ну хоть кто нить скажите где я ошибся)
Ответить с цитированием
  #13  
Старый 15.04.2011, 23:30
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,907
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Будет интересно, стукнись ко мне в аську в воскресенье. Отвечу...
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #14  
Старый 16.04.2011, 00:31
Biker89 Biker89 вне форума
Прохожий
 
Регистрация: 15.04.2011
Сообщения: 9
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Будет интересно, стукнись ко мне в аську в воскресенье. Отвечу...
жду воскресенья!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025