1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

Вопрос по программированию. Взаимодействие с браузером.

Тема в разделе "Софт", создана пользователем Hermes, 14.03.04.

  1. Hermes

    Hermes Активный участник

    11.636
    2
    Недавно вышел диск с Компьютеррой. Там прикручен поисковый движок Яндекса, который работает без установки веб-сервера на комп. Хотелось бы узнать как это работает, с целью написать приложение, взаимодействующее с браузером подобным образом, может кто разъяснит?

    Для работы движка необходимо выполнить команду:
    yandexCD.exe -yandexcd {FD079550-270C-11d8-8C11-000347A83D58} 17333

    yandexCD.exe - реально существующий ехе-шник
    17333 - порт, по которому ведется обмен

    -yandexcd {FD079550-270C-11d8-8C11-000347A83D58} - что это такое - непонятно

    Сама хтмл-ка с поиском выглядит так (угловые скобки заменил на квадратные, чтобы форум не стал их интерпретировать):

    HTML:
    [BODY onload="Reload();"]
    [SCRIPT]
    [!---
    function Reload()
    {
        document.location.href = "http://localhost:17333/";
    }
    // --]
    [/SCRIPT]
    [/BODY]
    [/HTML>
    
    Насколько я понимаю, команда, описанная выше регистрирует сервак, слушающий порт 17333, а хтмл-ка редиректит браузер на этот сервак. Но как такое сделать и что собственно происходит при выполнении команды?
     
  2. Hermes

    Hermes Активный участник

    11.636
    2
    Народ, очень надо, хоть намекните куда копать.
     
  3. Vaulter

    Vaulter Активный участник

    1.621
    0

    1. параметр у .exe (есть такие, типа format C: - с: - параметр ;) )
    2. номер - UID какого нить ActiveX зарегиный самим yandexCD.exe (у себя не нашел)

    ты сам уже ответил ;)
     
  4. pegas

    pegas Участник

    311
    0
    имхо это подключаемый протокол (pluggable protocol) для интернетэксплорера, то есть все запросы начинающие с yandexcd
    переправляются к нему и он возвращает результат. так например сделано в локальном мсдне (протоколы ms-help, ms-its)
    если вопрос был про то как написать такой протокол то вот это может помочь http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q260528&
     
  5. Hermes

    Hermes Активный участник

    11.636
    2
    Заранее извиняюсь за несколько путанное изложение проблемы. Я не совсем (совсем не :) ) понимаю, как работает поисковый движок без веб сервера и поэтому трудно подобрать нужные термины.

    pegas,

    По ссылке, данной вами, говорится, что протокол для IE, но поиск работает с любым браузером, не только с IE.


    Не совсем понял. Для поиска вызывается ХТМЛ страница, код которой приведен выше.

    Строчка:
    document.location.href = "http://localhost:17333/";

    наводит на мысль, что при выполнении команды:
    yandexCD.exe -yandexcd {FD079550-270C-11d8-8C11-000347A83D58} 17333

    в ОС инсталлится(?) http сервер, слушающий 17333 порт. После перезагрузки компа поиск перестает работать, пока опять не выполнишь вышенаписанную команду.

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

    Hermes добавил [date]1079644891[/date]:
    Vaulter, что это параметры, понятно :)
    А по поводу ActiveX можно поподробней? Вы хотите сказать, что в этом компоненте ActiveX реализован http сервер?
     
  6. RadioShark

    RadioShark Гость

    Посмотри, висит ли у тебя в процессах yandexCD.exe. Если да, то скорее всего yandexCD.exe - это локальный веб-сервер.

    Судя по коду в HTML, взаимодействие с yandexCD.exe идет по http, а не через создание ActiveX. Врядли ты сможешь выдернуть движок яндекса оттуда. Во-первых, яндекс не такой *****, чтобы свои движки раздавать нахаляву. Во-вторых, чтобы взаимодействовать с ActiveX, тебе еще нужно знать его API, что тоже является недоступным.

    Вообщем, движок яндекса слишком крут для магистерского диссера. За него нужно доктора наук давать. :)
     
  7. The Last Winged

    The Last Winged Активный участник

    12.552
    376
  8. Hermes

    Hermes Активный участник

    11.636
    2
    RadioShark, я свой пишу :)
    Хотелось его подобным образом подключить.