Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

php ??

22K
21 апреля 2010 года
FloyDos
81 / / 14.08.2009
Доброго времени суток.
Пишу на C++.
Необходимо запустить веб-браузер на опред странице и отправить в активное окно ввода на открытой странице некоторые данные (строку).
Как запустить браузер - это козе понятно.
А вот как отправить в окно ввода данные - может вы поскажете?

А можно как-то использовать код php? там все понятно по крайней мере - метод POST:).. Но неужели в С++ нет аналогичного чего-нибудь?
444
21 апреля 2010 года
patison
323 / / 15.03.2007
Чего-то не совсем понятно.. Вам нужно отправить какие-то данные через форму на определённой веб странице? Если да, то браузер открывать не надо... Достаточно посмотреть в сторону curl.
22K
21 апреля 2010 года
FloyDos
81 / / 14.08.2009
да, отправить, но и вывести результаты.
Конкретно нужно сделать запрос в гугл.
253
21 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Зачем вам что-то записывать в строку? Если это просто запрос к гуглу, открывайте сразу "http://www.google.com/search?q=вопрос". Иначе можете попробовать пошаманить с FindWindow + SendMessage для задания окну какого-то текста, но по-моему это в вашем случае перебор.
22K
21 апреля 2010 года
FloyDos
81 / / 14.08.2009
Благодарю.
Ну а если не гугл использовать, а рамблер например?
Не везде же такой синтаксис
253
21 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Это работает где угодно. С HTML знакомы? Даже если нет, набираем любой запрос в любом поисковике и смотрим в адресную строку.
22K
21 апреля 2010 года
FloyDos
81 / / 14.08.2009
http://rambler.de/search?q=fff

попробуйте набрать это в адресной строке и убедитесь, что это не так
253
21 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Попробуйте набрать это и убедитесь в обратном...
http://nova.rambler.ru/search?query=abc

Я же говорил - смотрим на адресную строку браузера после отправки запроса нормальным путём.
444
22 апреля 2010 года
patison
323 / / 15.03.2007
Ну ведь вы-же будете работать с конкретной формой конкретного сайта, так? Будь то гугл, рамблер, мсн, или что-то другое. Вот и используйте тот адрес с которым работает данная система. И не надо сюда приплетать php, и уж тем более шаманить с FindWindow и тд. Зачем? Посылайте из программы запросы нужному сайту, и получайте от него ответы. Http ещё пока не отменяли, даже если юзаете его не руками в браузере, а программно.
22K
23 апреля 2010 года
FloyDos
81 / / 14.08.2009
Великолепно! Этого я и ожидала.
Но если бы знала как это сделать, наверное не спрашивала бы.
Как послать? что за функции/структуры использовать?
А то я искала, в основном дают примеры как получить данные и прочие громоздкие, не очень понятно. хотелось бы разобраться, а не код копипастить
1.8K
23 апреля 2010 года
igor_nf
256 / / 13.12.2006
Цитата: FloyDos
Великолепно! Этого я и ожидала.
Но если бы знала как это сделать, наверное не спрашивала бы.
Как послать? что за функции/структуры использовать?
А то я искала, в основном дают примеры как получить данные и прочие громоздкие, не очень понятно. хотелось бы разобраться, а не код копипастить



С TCP/IP знакомы хотя бы поверхностно ? Если нет, то ознакомьтесь. Запрос в гугл - это обыкновенный http-запрос. Поскольку для работы с сетью повсеместно используется интерфейс сокетов, обобщённый алгоритм таков:

1. Открыть сокет.
2. Сформировать заголовки http.
3. Послать их серверу через сокет.
4. Разобрать заголовки ответа, принять данные.
5. Закрыть сокет.

Спецификация http см. тут - http://www.faqs.org/rfcs/rfc2616.html

И не надо ничего выдумывать с браузером - это смешно.

253
23 апреля 2010 года
Proger_XP
1.5K / / 07.08.2004
Цитата: igor_nf
С TCP/IP знакомы хотя бы поверхностно?


Да вы что, блин, какое TCP/IP, человеку нужно просто запустить браузер на определённой странице. Как определить эту страницу для любого поисковика - я уже наглядно показывал выше.

Запустить браузер тоже дело не хитрое. Можно двумя путями:

  • запускать Internet Explorer: самый простой вариант:
     
    Код:
    ShellExecute(0, '', 'C:\Program Files\Internet Explorer\IEXPLORE.exe', 'http://z-z-z', '', SW_NORMAL);
    // или:
    WinExec("C:\Program Files\Internet Explorer\IEXPLORE.exe http://z-z-z", SW_NORMAL);
  • делать временный .url-файл и открывать именно его, тогда ОС сама запустить ассоциированное приложение (будь то какой-то другой браузер или прога). Например, c:\open.url:
     
    Код:
    [InternetShortcut]
    URL=http://z-z-z

    Запуск:
     
    Код:
    ShellExecute(0, '', 'C:\open.url', '', '', SW_NORMAL);

Я надеюсь хоть это всё разложит по полочкам.
22K
23 апреля 2010 года
FloyDos
81 / / 14.08.2009
Цитата: Proger_XP

Запустить браузер тоже дело не хитрое. Можно двумя путями:[LIST]
  • запускать Internet Explorer: самый простой вариант:
     
    Код:
    ShellExecute(0, '', 'C:\Program Files\Internet Explorer\IEXPLORE.exe', 'http://z-z-z', '', SW_NORMAL);
    // или:
    WinExec("C:\Program Files\Internet Explorer\IEXPLORE.exe http://z-z-z", SW_NORMAL);

     
    Код:
    ShellExecute(0, '', 'C:\open.url', '', '', SW_NORMAL);


  • Нет, напрасно.
    Можно же запустить браузер:
    1) по умолчанию - не обязательно же IE, я его у себя вообще удалила когда-то.
    2) сразу на данной странице, незачем создавать еще какие-то доп url файлы
    И это все в одной функции, это известно как сделать.

    Вопрос не в том как запустить браузер, а в том, как обеспечить запрос - я все-таки не уверена, что поисковики работают все по схеме гугла:



    14
    23 апреля 2010 года
    Phodopus
    3.3K / / 19.06.2008
    GET-запрос по ShellExecute() нормально пройдет с любым дефолтным браузером. POST - нет.
     
    Код:
    ShellExecute(Handle, 'open', 'http://google.com', nil, nil, SW_SHOWNORMAL);
    253
    23 апреля 2010 года
    Proger_XP
    1.5K / / 07.08.2004
    Phodopus, +1, точняк, что-то я совсем заморочился. Ну, POST в данном случае ни к чему.
    Цитата: FloyDos
    Вопрос не в том как запустить браузер, а в том, как обеспечить запрос - я все-таки не уверена, что поисковики работают все по схеме гугла


    <...>
    Сделаю ещё одну попытку объяснить.
    Какая схема гугла? При чём тут гугл вообще? У вас же в адресной строке для Яндекса напимано: ...yandsearch?text=... - вам ничего не говорит это?
    Если смущает то, что русские (и другие) символы превращаются в %xx - можно не заморачиваться, нормальные браузеры их перекодируют сами.
    Либо погуглите на тему кодирования символов в URL.

    14
    23 апреля 2010 года
    Phodopus
    3.3K / / 19.06.2008
    Цитата: Proger_XP
    Ну, POST в данном случае ни к чему.


    Судя по представленному примеру rambler-а, к чему :)

    253
    23 апреля 2010 года
    Proger_XP
    1.5K / / 07.08.2004
    Цитата: Phodopus
    Судя по представленному примеру rambler-а, к чему :)


    А по-моему все же совсем не обязательнл.

    14
    23 апреля 2010 года
    Phodopus
    3.3K / / 19.06.2008
    Цитата: Proger_XP
    А по-моему все же совсем не обязательнл.


    Имеется ввиду .de версия

    444
    23 апреля 2010 года
    patison
    323 / / 15.03.2007
    Мда, господа, чё-то вас куда-то не туда несёт с открыванием браузера... Человеку нужно отправить запрос на определённую страницу, и получить ответ. А почему вы так уверены что человек вообще под вендой сидит? Какие нафиг FindWindow, ShellExecute и тд

    Автор, попробуйте посмотреть тут - http://curlpp.org/ .
    А вообще я вам уже выше писал - curl. Ищите готовые примеры, и вместе их разберём тут, если что-то не понятно будет.
    22K
    24 апреля 2010 года
    FloyDos
    81 / / 14.08.2009
    Вы понимаете, что мне нужно не только запрос послать и данные получить, но и вообще запустить браузер!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    Я так полагаю, что запрос можно организовать, как уже сказали, через сокет и так далее.
    Но как к этому приплести вывод результатов в браузере?????
    276
    26 апреля 2010 года
    Rebbit
    1.1K / / 01.08.2005
    Бррррр..... Хочется поржать (без обид).

    FloyDos. Не нервничайте. Вы просто не понимаете как оно все роботает.
    Значит еще раз подробнее о том про что Proger_XP говорит
    Любое отображение страницы в браузере уже само по себе запрос.
    Если ви открываете страницу по адресу
    google.com или rambler.ru - ето уже запрос - просто без параметров.

    Если вы напишыте в строке поиска гугла фразу "тралала" и нажиете поиск то ето будет точно то же самое что если вы сразу откроете страницу по урлу google.com?t=тралала.

    прочитайде детальнее про отправку форм GET запросом и вам все станет намного яснее.

    В даном случае ваша фраза которую вы втоптали в строку поиска передается гуглу как параметр под названием t.
    Конечно в других поисковиках етот параметр будет называться по другому. Но такова уж судьба. Вам нужно помнить названия етих параметров для разных поисковиков чтоб уметь сформировать правильный запрос.
    И так.
    1. Вы знаете на какой поисковик пойдет запрос.
    2. В зависимости от поисковика вы формируете урлу.
    (Для гугла - google.com?t=фраза, для яндекса yandex.ua/yandsearch?text=фраза и т.д.)

    Если вы щитаете что ето не универсально - да не универсально. Но универсально не получится.

    3. Вы открываете сформированую урлу в браузере. При етом браузер сам отправит запрос (повторю что любое открытие страницы ето запрос) и сам отобразит результат :). Никаких сокетов и т.п.

    Если же вы и далее хотите програмно вводить текст в поле поиска и програмно тыцкать на кнопку..... ви подумайте о том что
    а) для разних браузеров ето надо делать по разному.
    б) для разних сайтов ето надо делать по разному.
    И ето будет в десятки раз сложнее.
    56K
    26 апреля 2010 года
    Ivanoff
    6 / / 07.01.2010
    Автор, изначально задача какая стоит?
    что в конечном итоге должно получится?
    зачем открывать браузер?
    253
    26 апреля 2010 года
    Proger_XP
    1.5K / / 07.08.2004
    Цитата: Rebbit

    Значит еще раз подробнее о том про что Proger_XP говорит


    Хорошо объясняешь простым языком, у меня что-то так не получилось :)

    22K
    26 апреля 2010 года
    FloyDos
    81 / / 14.08.2009
    Цитата: Rebbit
    Бррррр..... Хочется поржать (без обид).

    FloyDos. Не нервничайте. Вы просто не понимаете как оно все роботает.
    Значит еще раз подробнее о том про что Proger_XP говорит
    Любое отображение страницы в браузере уже само по себе запрос.
    Если ви открываете страницу по адресу
    google.com или rambler.ru - ето уже запрос - просто без параметров.

    Если вы напишыте в строке поиска гугла фразу "тралала" и нажиете поиск то ето будет точно то же самое что если вы сразу откроете страницу по урлу google.com?t=тралала.
    прочитайде детальнее про отправку форм GET запросом и вам все станет намного яснее.

    В даном случае ваша фраза которую вы втоптали в строку поиска передается гуглу как параметр под названием t.
    Конечно в других поисковиках етот параметр будет называться по другому. Но такова уж судьба. Вам нужно помнить названия етих параметров для разных поисковиков чтоб уметь сформировать правильный запрос.
    И так.
    1. Вы знаете на какой поисковик пойдет запрос.
    2. В зависимости от поисковика вы формируете урлу.
    (Для гугла - google.com?t=фраза, для яндекса yandex.ua/yandsearch?text=фраза и т.д.)


    Спасибо, Кэп! Это все понятно, об этом тут уже где-то со второго поста воду льют. Но я не знаю какие поисковики пользователь будет задействовать. Если бы все было так просто, я бы давным-давно воспользовалась советом ProgerXP....

    Цитата: Rebbit

    Если вы щитаете что ето не универсально - да не универсально. Но универсально не получится.

    3. Вы открываете сформированую урлу в браузере. При етом браузер сам отправит запрос (повторю что любое открытие страницы ето запрос) и сам отобразит результат :). Никаких сокетов и т.п.

    Если же вы и далее хотите програмно вводить текст в поле поиска и програмно тыцкать на кнопку..... ви подумайте о том что
    а) для разних браузеров ето надо делать по разному.
    б) для разних сайтов ето надо делать по разному.
    И ето будет в десятки раз сложнее.



    а может можно создать скрипт, который отправляет данные странице и запускает ее?
    ну я уже поняла, что с сокетами не вариант, нужно оперировать самой страницей.
    так может создавать что-то вроде URL файла и запускать его?
    я так понимаю, через *.url нельзя послать данные, так может просто PHP файлик сделать и в нем скрипт намутить подходящий?

    :confused:
    ВОПРОС:
    1) Как использовать POST в данном случае (=как отправить запрос в активное поле ввода)
    2)Как пройти сразу по адресу, без отображения дополнительных ссылок

    22K
    26 апреля 2010 года
    FloyDos
    81 / / 14.08.2009
    Цитата: Proger_XP
    Хорошо объясняешь простым языком, у меня что-то так не получилось :)



    ProgerXP, напрасно.
    Вы отлично объяснили, на мой взгляд. По крайней мере мне абсолютно все было понятно. :)

    14
    26 апреля 2010 года
    Phodopus
    3.3K / / 19.06.2008
    Посмотрите, например, как сделано в Опере. Службы поиска там predefined. Некую свою службу поиска можно добавить лишь полностью прописав параметры GET запроса. POST-запрос Опера может себе позволить постольку поскольку все же сама является браузером и сама создает те самые сокеты, запросы и рендерит страницы. Так что с POST-ом в общем случае - никак.
    253
    26 апреля 2010 года
    Proger_XP
    1.5K / / 07.08.2004
    Цитата: FloyDos
    ProgerXP, напрасно.
    Вы отлично объяснили, на мой взгляд. По крайней мере мне абсолютно все было понятно. :)


    Я и вижу...

    Какие сокеты, о чём вообще речь - если вы не знаете, с какими поисковиками пользователь будет работать - наймите телепата, чтоб за сдельную плату опросил юзеров.

    Куда вы будете посылать данные? В небеса? Самый простой и надёжный способ - GET-запрос, как уже ни раз говорилось выше, во всех возможных формах.
    Сокеты, POST - это всё одного поля ягоды, вам нужно знать, что куда вставлять. Магического "дай мне результат!" не бывает.

    Я уж не знаю, как ещё это можно растолковать...

    444
    26 апреля 2010 года
    patison
    323 / / 15.03.2007
    Цитата: Proger_XP
    Куда вы будете посылать данные? В небеса?


    :D +1

    Действительно, либо автор плохо объясняет что ему нужно, либо не понимает невозможности реализации этого, либо мы все тут тупим))))

    332
    27 апреля 2010 года
    Valiant
    416 / / 27.09.2004
    Всё ни как не могу дойти до практического применения того о чём речь.
    Если ты программист, то ты и заключи пользователя в определённые рамки какими поисковиками ему можно пользоваться в рамках твоего приложения ...
    444
    28 апреля 2010 года
    patison
    323 / / 15.03.2007
    Цитата: Valiant

    Если ты программист, то ты и заключи пользователя в определённые рамки какими поисковиками ему можно пользоваться в рамках твоего приложения ...


    Ну зачем-же так категорично... Может быть приложение представляет собой искалку, и ищет сразу по 10 поисковикам.

    332
    28 апреля 2010 года
    Valiant
    416 / / 27.09.2004
    Цитата: patison
    Ну зачем-же так категорично... Может быть приложение представляет собой искалку, и ищет сразу по 10 поисковикам.



    Ну на то ты и программист что бы говорить где искать!

    536
    02 мая 2010 года
    alex-kniaz
    382 / / 07.08.2008
    сокеты и сетевые компоненты, конечно.
    если я всё понял, то
    http://kosten-spb.blogspot.com/2008/05/html.html
    первая ссылка в гугле по "получение HTML страницы в C#"
    536
    03 мая 2010 года
    alex-kniaz
    382 / / 07.08.2008
    Цитата:
    Ну на то ты и программист что бы говорить где искать!


    и предложить искать в другом месте

    Возможен вариант : для каждого поисковика имеем строку вида :
    http://google.com/search?q=вопрос

    Где вопрос меняем на заданный юзером текст (перекодированный)

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

    На полученную строку травим браузер, передаав её как параметр командной строки

    Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
    Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог