Squeak.ru - шаблоны программирования

Изменение пользовательского агента с помощью urlmon.dll

В поисках способа изменить строку пользовательского агента для элемента управления webBrowser я нашел этот отличный метод:

    [DllImport("urlmon.dll", CharSet = CharSet.Ansi)]
    private static extern int UrlMkSetSessionOption(int dwOption, string pBuffer, int dwBufferLength, int dwReserved);
    const int URLMON_OPTION_USERAGENT = 0x10000001;

    public static void ChangeUserAgent(string Agent)
    {
        UrlMkSetSessionOption(URLMON_OPTION_USERAGENT, Agent, Agent.Length, 0);
    }

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

Обычный:

webBrowser1.Navigate ("http://www.whatsmyuseragent.com", "_self" , null, "User-Agent: Luke's Web Browser");

Работает только на один запрос.

Однако я продолжаю читать везде, что первый метод работает только один раз за сеанс. В моем случае это работает столько раз, сколько я хочу. Итак, я предполагаю, что это связано с экземпляром Internet Explorer на компьютере?

Итак, мои вопросы:

  • Какую версию должен установить конечный пользователь на свой компьютер, чтобы этот метод работал должным образом? IE. меняй сколько хочу.
  • Поскольку это связано с Internet Explorer, установленным на компьютере, влияет ли изменение пользовательского агента в моем приложении на браузер?
  • Если у пользователя открыт Internet Explorer, будет ли этот метод работать?

Спасибо!


  • Зачем нужно менять пользовательский агент? 19.03.2012
  • Совершенно не связанный с вопросом. Почему это имеет значение? 19.03.2012

Ответы:


1

Мы довольно часто используем функцию «UrlMkSetSessionOption». У нас есть «настраиваемая оболочка веб-браузера», которая на самом деле представляет собой просто пользовательский элемент управления IE, встроенный в полноэкранную программу WinForms. Мы меняем пользовательский агент, чтобы он идентифицировал наш веб-сервер, что это наша «пользовательская» оболочка браузера. Но чтобы ответить на ваши конкретные вопросы:

  1. Мы использовали это как с IE8 на XP, так и с IE9 на Win7. Я думаю, что это не зависит от версии, но мы всегда используем последнюю версию.
  2. Насколько мы можем судить, изменение этого параметра влияет только на IE, работающий в процессе, вызвавшем метод. Поэтому, если пользователь запускает IE с рабочего стола, пользовательский агент не меняется. Если вы перезапустите программу, пользовательский агент не изменится.
  3. Он работает как с автономными запущенными экземплярами IE, так и без них. Пользовательский агент для этих автономных экземпляров остается неизменным.
30.04.2012
  • Спасибо за ответ, однако я обнаружил, что элемент управления веб-браузером чрезвычайно глючит для программного изменения страницы. Использование необработанных запросов намного лучше. 30.04.2012
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...