Windows - статьи

       

Реестр


Полный путь к скрипту - далеко не единственное, что можно добавить в реестр. Оказывается, запуск скрипта можно регулировать двумя необязательными, но очень полезными параметрами. Первый параметр задается в реестре в разделе HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Alert целым числом (DWORD):

  • название - contexts;
  • значение - битовая маска, состоящая из одного или суммы нескольких следующих шестнадцатеричных чисел:

    0x1 по умолчанию
    0x2 рисунки
    0x4 элементы управления
    0x8 таблицы
    0x10 выделенный текст
    0x20 ссылки

    То есть, чтобы в контекстном меню пункт Alert появлялся только над рисунками и ссылками, значение contexts должно быть:

    2h + 20h = 22h

    Второй параметр, задающийся в том же разделе реестра, имеет тип DWORD:

  • название - Flags;
  • значение - 0x1.

    Если вы потрудились его задать, при выполнении скрипта отобразится диалоговое окно, при его умелом программировании вполне способное обмениваться данными с пользователем.

    Скрипт будет запускаться, как если бы он был вызван с помощью метода showModalDialog. С единственным, правда, отличием - скрипт получает доступ к родительскому окну посредством свойства menuArguments объекта external.

    И, наконец, на панель инструментов можно добавить свою кнопку, по нажатию которой будет запускаться указанная вами программа. Для того чтобы эта программа обменивалась данными с Internet Explorer, понадобятся навыки объектного программирования и знание модели COM. Причем эта возможность существует в Internet Explorer версии 5 и выше.

    Для создания своей кнопки на панели инструментов Internet Explorer нужно подготовить рисунок в двух экземплярах - для активного и неактивного состояния. Неактивную кнопку принято рисовать в оттенках серого, активную - цветной.

    Изображение на кнопке панели инструментов IE - это пиктограмма (или иконка) с расширением .ico, содержащая рисунки 16 x 16, 20 x 20 или 36 x 36 пикселов, 16 или 256 цветов стандартной палитры Windows. Пример показан на рис. 4. У меня иконки сохранены как C:\My_Settings\cool.ico и C:\My_Settings\hot.ico.


    Теперь их нужно поместить на панель:



    Создайте уникальный идентификатор GUID, например, {AF56C981-ED80-4b90-A91F-C2F9E791F1DC}, с помощью программы guidgen.exe или uuidgen.exe.

    Откройте в редакторе реестра раздел HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions - и создайте в нем раздел под именем GUID. У меня получилось HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{AF56C981-ED80-4b90-A91F-C2F9E791F1DC} Откройте этот раздел.

    Добавьте в него следующие строковые параметры:

  • название - HotIcon;
  • значение - C:\My_Settings\hot.ico;
  • название - Icon;
  • значение - ../../../../../C:/My_Settings/cool.ico.

    Это пути к иконкам для активного и неактивного состояния кнопки.

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

  • название - Default Visible;
  • значение - Yes.

    Иначе кнопку придется добавлять на панель инструментов с помощью ее настройки - диалогового окна Customize Toolbar (Настройка панели инструментов).

    Кнопки могут сопровождаться подписью и подсказкой, появляющимися при наведении указателя мыши. Обычно это один и тот же текст. Этот текст тоже необходим для кнопки; его можно создать, добавив в наш раздел строковый параметр:

  • название - ButtonText;
  • значение - "Текст подсказки к кнопке".

    (О том, как после этого заставить Internet Explorer сделать что-нибудь полезное, расскажем ниже.)

    Несложно также добавить свой пункт в меню Tools (Сервис) или Help (Справка) Internet Explorer версии 5 и выше. Давайте создадим пункт "Моя команда":

    1. Создайте новый уникальный идентификатор GUID или воспользуйтесь уже созданным. Если Вы создали новый GUID, откройте в редакторе реестра раздел

    HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions и создайте в нем раздел, имя которого - GUID, созданный на предыдущем шаге. Откройте его.

    Если же новый GUID не создавался, откройте раздел HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Extensions\{AF56C981-ED80-4b90-A91F-C2F9E791F1DC}



    2. В этот раздел добавьте строковый параметр:

  • название - MenuText;
  • значение - Моя команда.

    Это текст нового пункта меню - его содержание ограничивается только вашей фантазией.

    3. Добавьте в наш раздел строковый параметр:

  • название - CLSID;
  • значение - {1FBA04EE-3024-11d2-8F1F-0000F87ABD16}

    Значение должно быть именно это и никакое другое. Эта константа - CLSID расширения панели инструментов Internet Explorer для приложений.

    4. Если новый пункт предназначен для меню Help (Справка), добавьте в наш раздел строковый параметр:

  • название - MenuCustomize;
  • значение - help.

    Если новый пункт предназначен для меню Tools (Сервис), этого пункта быть не должно.

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

  • название - MenuStatusBar;
  • значение - "Текст строки состояния".

    Итак, появилась кнопка или новый пункт в меню. Теперь привяжем к ней (или к нему) функциональность. Тут методика для кнопки и для пункта меню одинакова. При нажатии на кнопку или выборе пункта меню можно запускать следующие объекты:

  • COM-объекты;
  • скрипты;
  • приложения.

    Особенности создания и запуска COM-объектов подробно описаны на сайте компании Microsoft, об остальных же сейчас пойдет речь.


    Содержание раздела