Вы зашли как: Гость

Поставщики поиска: лучшие практики по установке значений по умолчанию

Напечатать страницу
25.02.2010 12:50 | evgeniya.zwezdina

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

Если вы создаете дополнение, которое изменяет параметры настройки поиска Internet Explorer или значения по умолчанию напрямую через системный реестр, ваше дополнение может привести к путанице и, как следствие, недовольству пользователя.

Всякий раз, когда программа пытается изменить заданный по умолчанию поставщик поиска напрямую через системный реестр (например, изменяя ключ реестра DefaultScope, как описано в в одной из предыдущих статей), IE8 прерывает изменение и просит пользователей его подтвердить:


Рис. 1: В этом диалоге, дополнение запрашивает изменение поставщика поиска, заданного по умолчанию, используя рекомендуемый API SetDefault и атрибуты. В данном случае приложение представляет собой панель Contoso Internet Toolbar.



Если различные поставщики поиска пытаются сбросить ключ реестра каждый раз при его изменении, это вызовет путаницу и помешает работе пользователя. Вышеприведенное диалоговое окно будет появляться каждый раз при изменении ключа напрямую.

IE8 позволяет осуществить настройку конфигурации через диалог "Настройки поставщика поиска по умолчанию", разработанный для этого сценария. Когда ваше дополнение использует API IOpenServiceManager (для установки провайдера поиска) и API SetDefault (для запроса установки по умолчанию), пользователи увидят более наглядную иллюстрацию происходящего. Эта прозрачность - важный аспект для осознанного контроля пользователем.

Фрагмент нижеприведенного кода показывает, как установить поставщик поиска с запросом на его установку по умолчанию, используя рекомендуемые API:

#include <windows.h>
#include <atlbase.h>
#include <openservice.h>

    HRESULT hr = E_FAIL;
    BOOL fComInitialized = FALSE;

    if (S_OK == CoInitialize(NULL))
    {
        fComInitialized = TRUE;

        //Открывает идентификатор менеджера OpenService
        CComPtr<IOpenServiceManager> spManager;
        hr = spManager.CoCreateInstance(CLSID_OpenServiceManager);

        if (SUCCEEDED(hr))
        {
            CComPtr<IOpenService> spService;

            //Устанавливает поставщик поиска
            //URL-OF-SERVICE: See http://www.opensearch.org/Specifications/OpenSearch/1.1#OpenSearch_description_elements
            hr = spManager->InstallService(URL-OF-SERVICE, &spService);

            if (hr==S_OK)
            {
                //Запрашивает у пользователя смену поставщика поиска по умолчанию
                hr = spService->SetDefault(TRUE, NULL);
            }
        }
    }

    if (fComInitialized)
    {
        CoUninitialize();
    }


При вызове SetDefault API покажет вышеприведенный диалог (см. рис. 1), запрашивая у пользователя смену поставщика поиска по умолчанию. Пользователь может подтвердить или отвергнуть этот запрос. Если подтвердит, дополнение сможет изменить настройки по умолчанию. Если отвергнет, дополнение не сможет изменить пользовательские настройки по умолчанию. Пользователь может изменить настройки в любой момент, открыв окно управления дополнениями.

Если исполняемый файл, вызывающий SetDefault API, подписан соответствующим сертификатом, название программы и имя ее издателя будут отображаться в диалоговом окне "Настройки поставщика поиска по умолчанию", как показано выше на рис. 1. Код, вызывающий SetDefault, должен быть подписан.

Если ваше дополнение напрямую контролирует ключ реестра DefaultScope, пожалуйста, обновите свой код с использованием рекомендуемых API. Это позволит пользователю видеть диалог поставщика поиска по умолчанию лишь однократно и позволит установить полный контроль над настройкой по умолчанию, обеспечив соответствие рекомендациям по разработке дополнений.

Если вы являетесь новичком и желаете изучить, как предлагать пользователям свои службы или просто начать работу, ознакомьтесь со статьей "Расширяемость поставщиков поиска в Internet Explorer".

Дак Во (Duc Vo),
программист команды IE


Источник: http://blogs.msdn.com/ieru
Перевод: evgeniya.zwezdina

Комментарии

Комментариев нет...
Для возможности комментировать войдите в 1 клик через

По теме

Акции MSFT
44.39 0.00
Акции торгуются с 17:30 до 00:00 по Москве
Обсуждай Windows 10 Technical Preview на форумах проекта
Мы на Facebook
Мы ВКонтакте
Рекомендуем
Решение проблемы с обновлением Windows 10
Далеко не все желающие получат Windows 10 29 июля
Плюсы создания сайта на Wordpress
Что нового в сборке Windows 10 10158
Стали известны цены на Windows 10 Home для Европы
Слухи: Microsoft готовит четыре новые Lumia
OneClip делает общим буфер обмена ПК и мобильного устройства
Эксклюзивные игры для Xbox, которые представила Microsoft на E3
Существенное обновление панели управления Xbox One ожидается в этом году с появлением на консоли Cortana
Microsoft представила версию Minecraft для HoloLens
В сеть утекла сборка 10125 Windows 10
Windows 10 сборка 10114: нововведения в меню Пуск
Наконец представили Oculus Rift 1.0 с геймпадом Xbox One и поддержкой Windows 10
Автоматизация работы ресторана
Сенсорный режим Windows 10 TP build 10056
Microsoft переориентируется на выпуск бюджетных планшетов
Новая сборка Windows 10 может появится к концу февраля
Интерес к мобильной Windows 10 утроился
Ограничения смартфонов с 512 Мб ОЗУ на Windows 10 Mobile
Шестилетний англичанин один из самых молодых людей сдавших экзамен Microsoft
Примем Тебя в команду сайта
Все права принадлежат © MSInsider.ru и TheVista.ru, 2015
Сайт является источником уникальной информации о семействе операционных систем Windows и других продуктах Microsoft. Перепечатка материалов возможна только с разрешения редакции.
Работает на WMS 1.1 (Страница создана за 0.373 секунд (Общее время SQL: 0.154 секунд - SQL запросов: 27 - Среднее время SQL: 0.00571 секунд))