Добавление кнопок панели инструментов

В этом руководстве показано, как добавить кнопку панели инструментов в пользовательский интерфейс Windows Internet Explorer. При нажатии кнопки панели инструментов может запускаться приложение Microsoft Win32, выполняться сценарий или открываться панель Explorer. Если также необходимо создать пункт меню для приложения Win32 или сценария, см. руководство Добавление пунктов меню.

  • Требования и зависимости 
  • Общие действия 
  • Подробные настройки 
    • COM-объекты 
    • Панели Explorer 
    • Сценарии 
    • Исполняемые файлы 
  • Связанные разделы

Требования и зависимости

Для добавления кнопок панели инструментов в Internet Explorer необходимо уметь работать с реестром и глобальными уникальными идентификаторами (GUID).

Эта возможность доступна только в Microsoft Internet Explorer 5 или более поздней версии. В Internet Explorer 4.0 имеется возможность добавить пользовательскую панель Explorer, однако отсутствует метод для добавления кнопки панели инструментов для доступа к панели Explorer.

Для кнопок панели инструментов требуются два набора значков: набор активных значков (цветных) и набор значков по умолчанию (оттенки серого). Эти значки могут храниться в двух отдельных файлах ICOили внутри ресурса (например, файла DLLили EXE). К значкам и строкам, хранящимся внутри ресурса, можно обращаться, указывая путь к ресурсу и относительный идентификатор в формате «путь, код_ресурса». Например, чтобы воспользоваться строковым ресурсом 123 в файле Example.dll, необходимо указать «Example.dll, 123». Дополнительные сведения о требуемых значках и советы по созданию значков для Internet Explorer см. в руководстве по стилю кнопок панели инструментов.

Общие действия

Приведенные в этом разделе инструкции необходимо выполнить для добавления любых кнопок панели инструментов в пользовательский интерфейс Internet Explorer. Если какие-либо действия не выполнены, кнопка панели инструментов не будет отображаться.

Примечание.  В этом руководстве объясняется, как добавить пункт меню для всех пользователей. Чтобы произвести настройки для отдельного пользователя, в приведенных ниже действиях замените HKEY_LOCAL_MACHINE на HKEY_CURRENT_USER. Элементы в разделе HKEY_CURRENT_USER переопределяют аналогичные элементы в разделе HKEY_LOCAL_MACHINE.

  1. Создайте допустимый идентификатор GUID.

    Для этого можно воспользоваться средством Guidgen.exe в Microsoft Visual Studio или средством Uuidgen.exe, входящим в пакет Windows SDK.

  2. Создайте новый раздел реестра с именем, соответствующим GUID, в разделе:

    HKEY_LOCAL_MACHINE
         Software
              Microsoft
                   Internet Explorer
                        Extensions
                             {GUID}

    {GUID} — это допустимый GUID, созданный при выполнении действия 1.

  3. Обязательный. Создайте в новом разделе следующие строковые параметры.
    • ButtonText — в качестве значения укажите ярлык, который необходимо использовать для кнопки панели инструментов.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\ButtonText

    • HotIcon — укажите полный путь к файлу ICO, содержащему три цветных значка.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\HotIcon

    • Icon — укажите полный путь к файлу ICO, содержащему три значка в оттенках серого.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\Icon

  4. Необязательное действие. Следующий параметр определяет, является ли значок видимым изначально.
    • DefaultVisible — чтобы кнопка отображалась на панели инструментов Internet Explorer по умолчанию, задайте для параметра DefaultVisible значение «Yes». В противном случае задайте для параметра DefaultVisible значение «No».

      HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\Default Visible

      Примечание.  Если пользователь настроил панель инструментов, кнопка не будет отображаться на панели инструментов автоматически. Она будет добавлена в список имеющихся кнопок в диалоговом окне Настройка панели инструментов и появится на панели инструментов после ее сброса.

  5. Необязательное действие. Для обеспечения поддержки различных национальных языков (например, французского или японского) выполните следующие действия.
    • Выясните код языка, поддержку которого необходимо обеспечить. Полный список см. в статье Константы и строки идентификаторов языка.
    • Создайте новый раздел реестра с именем Lang####, подставив вместо «####» требуемый код языка.

      HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\Lang####

      Например, для японского языка раздел должен иметь имя «Lang0411», так как код японского языка — 0411.

Подробные настройки

Чтобы завершить настройку пользовательской команды, необходимо подробно определить действие, которое должно выполняться при нажатии кнопки. Требуемые параметры зависят от того, какой объект должен вызываться при нажатии кнопки панели инструментов. Ниже приведены ссылки на разделы с инструкциями, которые необходимо выполнить, чтобы завершить добавление кнопки панели инструментов.

  • COM-объекты 
  • Панели Explorer 
  • Сценарии 
  • Исполняемые файлы 

COM-объекты

Для вызова COM-объекта из Internet Explorer необходимо реализовать интерфейс IOleCommandTarget. Для каждого объекта поддерживается только одна команда. Метод IOleCommandTarget::Exec COM-объекта всегда вызывается с nCmdID=0 и аргументами VARIANT, равными NULL. Кроме того, реализация метода IOleCommandTarget::QueryStatus всегда вызывается с cCmds=1.

Если COM-объекту необходим доступ к браузеру или объектной модели DHTML активной страницы, он должен реализовывать интерфейс IObjectWithSite. Internet Explorer вызывает метод IObjectWithSite::SetSite с указателем на интерфейс IShellBrowser.

Чтобы завершить создание кнопки панели инструментов, реализующей COM-объект, необходимо выполнить следующие действия.

  1. Зарегистрируйте COM-объект.
  2. Создайте строковый параметр CLSID в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\CLSID

    Задайте для параметра CLSID значение {1FBA04EE-3024-11d2-8F1F-0000F87ABD16}, чтобы определить класс расширения CLSID_Shell_ToolbarExtExec.

  3. Создайте строковый параметр ClsidExtension в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\ClsidExtension

    Задайте в качестве значения параметра ClsidExtension идентификатор GUID COM-объекта.

Панели Explorer

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

  1. Создайте строковый параметр CLSID в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\CLSID

    Задайте для параметра CLSID значение {E0DD6CAB-2D10-11D2-8F1A-0000F87ABD16}, чтобы определить класс расширения CLSID_Shell_ToolbarExtBand.

  2. Создайте строковый параметр BandCLSID в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\BandCLSID

    Задайте в качестве значения параметра BandCLSID расширение CLSID соответствующей панели Explorer.

    Примечание.   Для всех панелей Explorer в меню Вид автоматически добавляется пункт меню.

Сценарии

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

  1. Создайте строковый параметр CLSID в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\CLSID

    Задайте для параметра CLSID значение {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}, чтобы определить класс расширения CLSID_Shell_ToolbarExtExec.

  2. Создайте строковый параметр Script в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\Script

    Задайте в качестве значения параметра Script полный путь к соответствующему сценарию.

    Чтобы добавить в меню Сервис пункт с аналогичными функциональными возможностями, см. руководство Добавление пунктов меню.

Исполняемые файлы

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

  1. Создайте строковый параметр CLSID в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\CLSID

    Задайте для параметра CLSID значение {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}, чтобы определить класс расширения CLSID_Shell_ToolbarExtExec.

  2. Создайте строковый параметр Exec в реестре следующим образом.

    HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\Extensions\{GUID}\Exec

    Задайте в качестве значения параметра Exec полный путь к соответствующему EXE-файлу.

    Чтобы добавить в меню Сервис пункт с аналогичными функциональными возможностями, см. руководство Добавление пунктов меню.

Связанные разделы