Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 16:50   #11
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

Мазилы под рукой нет. У Spy++ есть интересная функция FindWindow... "прицел" наводим на адресную строку и получаем название или имя класса поля ввода.
При помощи FindWindowEx получаем хэндл этого поля ввода. К примеру:
Код:
var
  wnd,wnd1:HWND;
begin
wnd:=FindWindow('MozillaWindowClass',nil);
if wnd <> 0 then
begin
wnd1:=FindWindowEx(wnd,nil,'TpoleVvoda',nil);
SetWindowText(wnd,'http://ololol.ru');
end;
end;
Человек_Борща вне форума Ответить с цитированием
Старый 13.04.2011, 19:32   #12
Biker89
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 12
По умолчанию

пишу вот это


procedure TForm1.adressClick(Sender: TObject);
begin
sleep (1000);
wnd:=FindWindow('Chrome_WidgetWin_0 ',nil);
if wnd <>0 then
begin
wnd1:=FindWindowEx (wnd,nil,'Chrome_AutocompleteEditVi ew',nil);
SetWindowText(wnd,'www.abc.ru');
end;

при проверке выдаёт ошибку в параметрах к FindWindowEx.в чём проблема?
Biker89 вне форума Ответить с цитированием
Старый 13.04.2011, 19:37   #13
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

второй параметр 0 должен быть.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 22:08   #14
Biker89
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 12
По умолчанию

чё то всё равно не пашет.spy++ вообще не определяет адресную строку мазилы как отделаьный элемент.попробывал на chrome.

procedure TForm1.adressClick(Sender: TObject);
begin
sleep (2000);
wnd:=FindWindow('Chrome_WidgetWin_0 ',nil); -хром виджет вин это то когда наводишь прицел на самый верх хрома(где расположено закрыть,во весь экран,свернуть),вообщем как я понял это имя окна,а оно нам и нужно
if wnd <>0 then
begin
wnd1:=FindWindowEx (wnd,0,'Chrome_AutocompleteEditView ',nil); -хромавтокомплит это адресная строка хрома
SetWindowText(wnd1,'www.ya.ru');
end;
end;


вообщем получилось вот так,но когда выполняешь программу ничего не происходит.я в пичали)перечитал уже много форумов,нигде не нашёл схожей проблемы
Biker89 вне форума Ответить с цитированием
Старый 15.04.2011, 13:50   #15
Biker89
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 12
По умолчанию

смог сделать переход на заданный адрес вот так

procedure TForm1.adressClick(Sender: TObject);
begin
sleep (2000);
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;

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

попробывал чуть изменить


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,Integ er(PChar('www.yan.ru')));
setcursorpos (300,60);
end
else setcursorpos (0,0);
end;

вот так ветка с wnd1 не выполняется.выполняется else (курсор перемещается в (0,0))=>он просто не находит такую строчку и ошибка где то там.может глянет кто свежим взглядом?)
Biker89 вне форума Ответить с цитированием
Старый 15.04.2011, 22:59   #17
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Пробелы в названиях классов у вас в коде, или просто форум так глюканул?
eduard93 вне форума Ответить с цитированием
Старый 16.04.2011, 00:16   #18
Biker89
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от eduard93 Посмотреть сообщение
Пробелы в названиях классов у вас в коде, или просто форум так глюканул?
эм)видимо форум.плюс программа запускается и ошибок не выдаёт,так что с орфографией вроде всё ок
и прошу давайте без вы)
Biker89 вне форума Ответить с цитированием
Старый 16.04.2011, 01:11   #19
eduard93
Форумчанин
 
Регистрация: 06.12.2010
Сообщений: 300
По умолчанию

Может тогда попробовать другой способ взаимодействия с браузером? С помощью MSAA должно быть вполне возможно ввести текст в адресную строку браузера.
eduard93 вне форума Ответить с цитированием
Старый 16.04.2011, 14:55   #20
Biker89
Пользователь
 
Регистрация: 12.04.2011
Сообщений: 12
По умолчанию

Цитата:
Сообщение от eduard93 Посмотреть сообщение
Может тогда попробовать другой способ взаимодействия с браузером? С помощью MSAA должно быть вполне возможно ввести текст в адресную строку браузера.
ввести текст в адресную строку я уже смог)у меня проблема чтобы ввести текст в определенную зону экрана (например строка поиска на яндексе)
Biker89 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дата входящая в заданный интервал Валентинка) Microsoft Office Excel 8 07.04.2011 21:33
найти все слова, в которых заданный символ встречается не менее чем заданное число раз. Delphi. Виктория7777 Помощь студентам 6 21.12.2010 18:46
Зашифровать заданный текст на Паскале bad wolf Помощь студентам 6 12.11.2010 22:41
подходит ли заданное слово под заданный шаблон Ivan_assm Помощь студентам 2 18.04.2010 20:44
Поворот изображения на заданный угол. taller07 Мультимедиа в Delphi 4 28.11.2008 14:01