Реестр
Полный путь к скрипту - далеко не единственное, что можно добавить в реестр. Оказывается, запуск скрипта можно регулировать двумя необязательными, но очень полезными параметрами. Первый параметр задается в реестре в разделе HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\Alert целым числом (DWORD):
0x1 | по умолчанию |
0x2 | рисунки |
0x4 | элементы управления |
0x8 | таблицы |
0x10 | выделенный текст |
0x20 | ссылки |
То есть, чтобы в контекстном меню пункт Alert появлялся только над рисунками и ссылками, значение contexts должно быть:
2h + 20h = 22h
Второй параметр, задающийся в том же разделе реестра, имеет тип DWORD:
Если вы потрудились его задать, при выполнении скрипта отобразится диалоговое окно, при его умелом программировании вполне способное обмениваться данными с пользователем.
Скрипт будет запускаться, как если бы он был вызван с помощью метода 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} Откройте этот раздел.
Добавьте в него следующие строковые параметры:
Это пути к иконкам для активного и неактивного состояния кнопки.
Если вы не настраивали панель Internet Explorer специально, можно сразу поместить на нее нашу кнопку. Для этого добавьте в раздел строковый параметр:
Иначе кнопку придется добавлять на панель инструментов с помощью ее настройки - диалогового окна Customize Toolbar (Настройка панели инструментов).
Кнопки могут сопровождаться подписью и подсказкой, появляющимися при наведении указателя мыши. Обычно это один и тот же текст. Этот текст тоже необходим для кнопки; его можно создать, добавив в наш раздел строковый параметр:
(О том, как после этого заставить 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. В этот раздел добавьте строковый параметр:
Это текст нового пункта меню - его содержание ограничивается только вашей фантазией.
3. Добавьте в наш раздел строковый параметр:
Значение должно быть именно это и никакое другое. Эта константа - CLSID расширения панели инструментов Internet Explorer для приложений.
4. Если новый пункт предназначен для меню Help (Справка), добавьте в наш раздел строковый параметр:
Если новый пункт предназначен для меню Tools (Сервис), этого пункта быть не должно.
5. Если нужно, чтоб при выборе этого пункта в строке состояния появлялся текст, добавьте в раздел строковый параметр:
Итак, появилась кнопка или новый пункт в меню. Теперь привяжем к ней (или к нему) функциональность. Тут методика для кнопки и для пункта меню одинакова. При нажатии на кнопку или выборе пункта меню можно запускать следующие объекты:
Особенности создания и запуска COM-объектов подробно описаны на сайте компании Microsoft, об остальных же сейчас пойдет речь.