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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2013, 01:45   #1
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию Ввести слово в браузерную строку хрома

Как сделать что б там написалось слово? Не подходит ShellExecute - потому-что оно пройдет как по ссылке и ошибку выбьет, надо что б просто написало в текущей вкладке, можно и в любой. Можно и другой браузер, кроме ИЕ.
По какому алгоритмы делать, и я надеюсь для этого не надо перехватывать функции?
igrok111 вне форума Ответить с цитированием
Старый 22.06.2013, 01:58   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Что-то не ясно что вам надо.
Своим телепатором n-го lvl догадывась что вам надо в адресную строку забить текст.
Ну так найдите оконный класс(FindWindow,FindWindowEx или EnumWindows) адресной строки относительно окна гогольхрома и сделайте SetWindowText

ВСе перечисленные функции гуглятся по запросу "MSDN %s"
Человек_Борща вне форума Ответить с цитированием
Старый 22.06.2013, 22:30   #3
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Дополню только - тс, посмотри для начала класс контрола через Spy+ (Chrome_OmniboxView должен быть по идее), а потом его и пытайся искать как Человек_Борща описал...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 22.06.2013, 22:32   #4
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от spamer Посмотреть сообщение
Дополню только - тс, посмотри для начала класс контрола через Spy+ (Chrome_OmniboxView должен быть по идее), а потом его и пытайся искать как Человек_Борща описал...
А может есть какие-то исходники, примеры похожие на все это? а то я поискал, ничего не могу найти
igrok111 вне форума Ответить с цитированием
Старый 22.06.2013, 23:10   #5
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

http://programmersforum.ru/search.php
http://programmersforum.ru/showthread.php - это на примере калькулятора, параметры для FindWindow(EX) нужно смотреть через программу, например, WinSpy или Spy+ или подобную
eoln вне форума Ответить с цитированием
Старый 22.06.2013, 23:15   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,430
По умолчанию

Цитата:
а то я поискал, ничего не могу найти
Ну так и признайся, что вообще ничего не искал.

"Пример работы с %s" выдает толпы информации, да чего уж там, на MSDN к каждой функции идет пример работы с ней.
Человек_Борща вне форума Ответить с цитированием
Старый 22.06.2013, 23:20   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  t: HWND;
  s: string;
begin
  t := Findwindowex(findwindow('Chrome_WidgetWin_1', nil), 0, 'Chrome_OmniboxView', nil);
  if t <> 0 then
  begin
    s := 'hello';
    SendMessage(t, WM_SETTEXT, length(s), lParam(PChar(s)));
    caption := 'done';
  end
  else
    caption := 'fail';
end;
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 22.06.2013, 23:38   #8
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  t: HWND;
  s: string;
begin
  t := Findwindowex(findwindow('Chrome_WidgetWin_1', nil), 0, 'Chrome_OmniboxView', nil);
  if t <> 0 then
  begin
    s := 'hello';
    SendMessage(t, WM_SETTEXT, length(s), lParam(PChar(s)));
    caption := 'done';
  end
  else
    caption := 'fail';
end;
К сожалению у меня ничего не получилось. Я ставлю таймер 4 сек, по нажатию кнопки происходит запуск таймера. Я нажимаю кнопку, сворачиваю прогу и нажимаю хром что б он стал активным, но по таймеру ничего не происходит, не пишеться hello.
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  t: HWND;
  s: string;

begin
 t := Findwindowex(findwindow('Chrome_WidgetWin_1', nil), 0, 'Chrome_OmniboxView', nil);
  if t <> 0 then
  begin
    s := 'hello';
    SendMessage(t, WM_SETTEXT, length(s), lParam(PChar(s)));
    caption := 'done';
  end
  else
    caption := 'fail';
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;
igrok111 вне форума Ответить с цитированием
Старый 22.06.2013, 23:43   #9
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,322
По умолчанию

Цитата:
Сообщение от igrok111 Посмотреть сообщение
К сожалению у меня ничего не получилось. Я ставлю таймер 4 сек, по нажатию кнопки происходит запуск таймера. Я нажимаю кнопку, сворачиваю прогу и нажимаю хром что б он стал активным, но по таймеру ничего не происходит, не пишеться hello.
1) Зачем такие сложности? У меня срабатывает при активном окне моего приложения (хром не активен).
2) Какая версия Дельфи?
3) В заголовке приложения должна появиться запись done или fail.
4) Проверьте, что класс окна Chrome именно Chrome_WidgetWin_1.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 22.06.2013 в 23:46.
BDA на форуме Ответить с цитированием
Старый 22.06.2013, 23:52   #10
igrok111
Форумчанин
 
Регистрация: 12.07.2012
Сообщений: 140
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
1) Зачем такие сложности? У меня срабатывает при активном окне моего приложения (хром не активен).
2) Какая версия Дельфи?
3) В заголовке приложения должна появиться запись done или fail.
4) Проверьте, что класс окна Chrome именно Chrome_WidgetWin_1.
Появляется fail, Delphi 6

В Delphi 7 тоже не работает, менял на Chrome_WidgetWin_0 Chrome_WidgetWin Chrome_WidgetWin_2 - всегда fail

Последний раз редактировалось igrok111; 23.06.2013 в 00:03.
igrok111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
почему не могу ввести строку s2? гоша37 Паскаль, Turbo Pascal, PascalABC.NET 1 15.11.2012 21:16
Ввести из клавиатуры слово и распечатать символы, которые встречаются более одного раза. eragon_ua Паскаль, Turbo Pascal, PascalABC.NET 0 18.04.2011 18:26
Ввести слово. Fender92 Паскаль, Turbo Pascal, PascalABC.NET 5 17.03.2011 23:15
Как ввести строку???? firephenix Помощь студентам 2 18.02.2011 18:46
Как зделать браузерную строку на браузер? Shang-Tsung Общие вопросы Delphi 2 23.07.2010 21:29