![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
| Результаты опроса: Способ ввода текста оптимален?если нет,то прошу предложить свой способ в комментариях | |||
| Оптимален |
|
1 | 25.00% |
| Нет |
|
3 | 75.00% |
| Можно лучше,но и такой подойдёт |
|
0 | 0% |
| Голосовавшие: 4. Вы еще не голосовали в этом опросе | |||
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
нужна программа которая в заданную область экрана вводит заданный текст.
перехожу на сайт,используя данную команду: 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
|
||||
|
||||
|
Так в заданную область экрана или в некий абстрактный контрол?
|
|
#3
|
|||
|
|||
|
вообще желательно в абстрактный,потому что 2 экрана и координаты соответственно меняются)
|
|
#4
|
||||
|
||||
|
Если в абстрактный то SetWindowText не во всех случаях работать будет. Можешь еще попробовать послать сообщение WM_SETTEXT, но тоже не факт что сработает.
|
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
||||
|
||||
|
Примерно так:
Код:
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
|
||||
|
||||
|
Цитата:
|
|
#8
|
|||
|
|||
|
Цитата:
Код:
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
|
|||
|
|||
|
сделал вот так
Код:
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
|
||||
|
||||
|
Ну значит не нашел он такого окна
![]() |
|
#11
|
|||
|
|||
|
Цитата:
ну это то я понял)вопрос почему?) |
|
#12
|
|||
|
|||
|
посоны ну хоть кто нить скажите где я ошибся)
|
|
#13
|
||||
|
||||
|
Будет интересно, стукнись ко мне в аську в воскресенье. Отвечу...
|
|
#14
|
|||
|
|||
|
Цитата:
![]() |