Бөлісу құралы:


Регистрация браузера или клиента электронной почты в меню "Пуск" Windows

Заметка

Этот раздел относится к Windows XP, Windows Vista и Windows 7.

 

Меню "Пуск" в Windows XP и Windows Vista содержит зарезервированные слоты для стандартных клиентов Интернета (браузера) и электронной почты (почтовой программы), вместе общепринято известных как интернет-приложения меню "Пуск". Приложения, которые регистрируются как Интернет-приложения в меню "Пуск", делают это для всей системы (на уровне компьютера). В Windows Vista пользователь может использовать функцию программ по умолчанию, чтобы задать значение по умолчанию для каждого пользователя.

Когда приложения регистрируются в качестве Интернет-приложений меню "Пуск", Windows XP и Windows Vista создают Интернет и электронная почта иконки в меню "Пуск". Щелкнув эти значки, меню "Пуск" проверяет поддерев реестра для каждого пользователя (HKEY_CURRENT_USER). Если параметр по умолчанию для каждого пользователя не найден, меню "Пуск" ищет подключ по умолчанию для каждого компьютера в поддереве HKEY_LOCAL_MACHINE.

Заметка

Установка Windows по умолчанию не регистрирует интернет-программу или программу электронной почты для каждого пользователя, а только системную настройку по умолчанию. Это обеспечивает гладкий путь обновления с предыдущих версий операционной системы, в которых поддерживается только подраздел HKEY_LOCAL_MACHINE для регистрации клиентов.

 

В этом разделе рассматриваются следующие элементы:

Заметка

Эта регистрация не рекомендуется использовать в Windows 7, которая больше не предоставляет ссылку на меню "Пуск". Существующие регистрации игнорируются в Windows 7 и более поздних версиях. Регистрация в качестве интернет-приложения в меню "Пуск" по умолчанию не совпадает с регистрацией в качестве веб-браузера по умолчанию. Веб-браузер по умолчанию используется для запуска произвольных URL-адресов из любой точки системы. Приложение "Пуск" в Интернете просто управляет программой, которая запускается, когда пользователь щелкает значок Интернета в меню "Пуск".

 

Любое приложение веб-браузера может зарегистрироваться и отображаться в качестве интернет-клиента в меню «Пуск». Эта видимость, в сочетании с правильной регистрацией файла приложения и типов протоколов , присваивает приложению статус браузера по умолчанию.

Регистрации, сделанные в поддереве HKEY_CURRENT_USER, имеют более высокий приоритет для пользователя консоли, чем соответствующие регистрации, сделанные в HKEY_LOCAL_MACHINE. Для новых пользователей в системе используются параметры, хранящиеся в HKEY_LOCAL_MACHINE. Начиная с Windows XP, интернет-настройки меню "Пуск" сохраняются в записи по умолчанию двух местоположений реестра.

  • HKEY_CURRENT_USER\SOFTWARE\Клиенты\StartMenuInternet
  • HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\StartMenuInternet

В подразделе HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet описывается интернет-браузер, который запускается при нажатии значка Internet в меню "Пуск". Если этот подраздел пуст или его нет, то значок Internet в меню "Пуск" установлен по умолчанию в системе, который хранится во втором расположении в HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\StartMenuInternet, который описывает все приложения интернет-браузеров, установленные в системе.

При входе нового пользователя в систему меню "Пуск" использует значение по умолчанию в подразделе HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\StartMenuInternet для отображения интернет-клиента по умолчанию и запуска зарегистрированного приложения при щелчке по этой иконке.

Регистрация в качестве клиента Интернета по умолчанию

Ниже подраздела HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet может быть ноль или более подразделов, по одному для каждого зарегистрированного интернет-браузера. Например, гипотетическая система может иметь такое расположение:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         StartMenuInternet
            IEXPLORE.EXE
            BROWSER2.EXE
            BROWSER3.EXE

Мы продемонстрируем записи реестра с помощью гипотетического браузера под названием Lit View от вымышленной компании Litware Inc. Предположим, что имя исполняемого файла для Lit View является Litview.exe. Регистрация Lit View происходит так, как показано здесь:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         StartMenuInternet
            LITVIEW.EXE
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123

Данные LocalizedString имеют тип REG_SZ или REG_EXPAND_SZ, если используются переменные пути, такие как %programfiles%. LocalizedString предоставляет путь к исполняемому файлу (.exe) или библиотеке (.dll) файла. Обратите внимание, что строка пути начинается с знака at (@) и что кавычки не требуются вокруг пути независимо от пробелов в нем. Десятичное целое число — это идентификатор строкового ресурса, содержащегося в указанной библиотеке DLL, значение которого должно отображаться пользователю. Это позволяет использовать одну регистрацию для нескольких языков. Каждый язык предлагает свой ResourceDLL.dll. Это позволяет системе отображать правильную строку на основе выбранного языка.

Следующее значение REG_SZ или REG_EXPAND_SZ сообщает меню "Пуск" о значке по умолчанию, который должен отображаться, когда пользователь выбирает Lit View в качестве интернет-браузера меню "Пуск".

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         StartMenuInternet
            LITVIEW.EXE
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LitView.exe,1

В следующем подразделе реестра указывается командная строка, которая выполняется, когда пользователь щелкает команду меню "Интернет" в меню "Пуск", при условии, что в качестве браузера меню "Пуск" выбран Lit View. Например, команда может открыть браузер с домашней страницей пользователя или запустить вводный интерфейс, который, по мнению независимого поставщика программного обеспечения (ISV), является подходящим. Данные имеют тип REG_SZ или REG_EXPAND_SZ, но обратите внимание, что из-за пробела в пути командной строки исполняемый путь заключен в кавычки.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         StartMenuInternet
            LITVIEW.EXE
               shell
                  open
                     (Default) = "C:\Program Files\LitwareInc\LitView.exe" -welcome

Если пользователь указывает задать доступ к программе и программы по умолчанию (SPAD), что Lit View должен использоваться в качестве веб-браузера по умолчанию на уровне компьютера, приложение должно задать следующую REG_SZ запись. Обратите внимание, что, так как SPAD выполняется с правами администратора, доступ к этому подразделу разрешен.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         StartMenuInternet
            (Default) = LITVIEW.EXE

Заметка

В Windows Vista веб-браузер по умолчанию должен быть установлен с помощью средства Программы по умолчанию, а не SPAD.

Следующие сведения относятся только к Windows XP.

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

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         StartMenuInternet

Если регистрация веб-браузера, заданного по умолчанию на уровне компьютера, в HKEY_LOCAL_MACHINE происходит сбой, приложение должно задать данные REG_SZ, как показано в этом примере для приложения Lit View.

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         (Default) = LITVIEW.EXE

 

После обновления соответствующих вложенных ключей приложение передает сообщение WM_SETTINGCHANGE со своим параметром wParam, установленным в 0, при этом параметр lParam указывает на строку с завершающим нулем, "Software\Clients\StartMenuInternet". Это уведомляет операционную систему о том, что клиент по умолчанию изменился.

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

Заметка

Ссылка на электронную почту в меню "Пуск" была удалена, начиная с Windows 7. Однако эта регистрация, описанная в этом разделе, по-прежнему должна быть выполнена для его эффекта при назначении клиента MAPI по умолчанию.

 

Как меню "Пуск" отображает клиент электронной почты по умолчанию

Любое почтовое приложение может зарегистрировать себя в качестве клиента электронной почты в меню "Пуск". Эта видимость, вместе с правильной регистрацией типов файлов приложения и протоколов , обеспечивает приложению статус почты по умолчанию.

Регистрации, сделанные в поддереве HKEY_CURRENT_USER, имеют более высокий приоритет для пользователя консоли, чем соответствующие регистрации, сделанные в HKEY_LOCAL_MACHINE. Для новых пользователей в системе используются параметры, хранящиеся в HKEY_LOCAL_MACHINE. Начиная с Windows XP, параметры электронной почты в меню "Пуск" хранятся в записях по умолчанию двух расположений реестра:

  • HKEY_CURRENT_USER\SOFTWARE\Клиенты\Почта
  • HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\Почта

В подразделе HKEY_CURRENT_USER\SOFTWARE\Клиенты\Почта описывается клиент электронной почты, запускаемый при нажатии на значок электронной почты в меню "Пуск".

В подразделе HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\Почта описываются приложения электронной почты, установленные в системе, а также приложение электронной почты по умолчанию.

Если HKEY_CURRENT_USER\SOFTWARE\Клиенты\Почта пусты или отсутствуют, значение по умолчанию, определенное в HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\Mail используется для выбора приложения электронной почты, которое отображается в меню "Пуск".

При входе нового пользователя в систему меню "Пуск" использует значение по умолчанию в подразделе HKEY_LOCAL_MACHINE\Software\Clients\Mail, чтобы отобразить почтовый клиент по умолчанию и запустить зарегистрированное приложение при нажатии на этот значок.

Регистрация в качестве клиента EMail по умолчанию

HKEY_LOCAL_MACHINE\SOFTWARE\Клиенты\Почта могут содержать ноль или несколько подразделов, по одной для каждого зарегистрированного почтового приложения. Например, гипотетическая система может определить следующие подключи:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            Eudora
            Windows Mail

Мы продемонстрируем записи реестра с гипотетическим клиентом электронной почты с именем Lit Mail из вымышленной компании Litware Inc. Litware Inc. решает зарегистрировать этот клиент электронной почты под внутренним именем LitMail. Как и в браузере, внутреннее имя является уникальной строкой, используемой в качестве имени подраздела, но оно никогда не отображается пользователю.

Чтобы установить Lit Mail по умолчанию в качестве почтового клиента, они используют следующий подраздел и его записи.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            LitMail
               (Default) = Lit Mail
               LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-456

Данные LocalizedString имеют тип REG_SZ или REG_EXPAND_SZ, если используются переменные пути, такие как %programfiles%. LocalizedString предоставляет путь к исполняемому файлу (.exe) или библиотеке (.dll) файла. Обратите внимание, что строка пути начинается с знака at (@) и что кавычки не требуются вокруг пути независимо от пробелов в нем. Десятичное целое число — это идентификатор строкового ресурса, содержащегося в указанной библиотеке DLL, значение которого должно отображаться пользователю. Это позволяет использовать одну регистрацию для нескольких языков. Каждый язык имеет разные ResourceDLL.dll. Это позволяет системе отображать правильную строку на основе выбранного языка.

После обновления соответствующих вложенных ключей приложение передает сообщение WM_SETTINGCHANGE с параметром wParam, установленным в 0, и параметром lParam, указывающим на строку с завершением NULL, "Software\Clients\Mail". Это уведомляет операционную систему о том, что клиент по умолчанию изменился.

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

Следующее значение REG_SZ или REG_EXPAND_SZ сообщает меню "Пуск" о значке по умолчанию для отображения, когда пользователь выбирает Lit Mail в качестве программы для почты в меню "Пуск":

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            LitMail
               DefaultIcon
                  (Default) = C:\Program Files\LitwareInc\LitMail.exe,1

Следующая запись указывает командную строку для запуска, когда пользователь щелкает пункт меню в меню "Пуск", предполагая, что Lit Mail — это выбранная программа "Пуск" электронной почты. Эта командная строка также выполняется, если пользователь выбирает Чтение электронной почты в меню Инструментов Windows Internet Explorer. Данные имеют тип REG_SZ или REG_EXPAND_SZ, но обратите внимание, что, так как в пути командной строки есть пробел, исполняемый путь заключен в кавычки.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            shell
               open
                  command
                     (Default) = "C:\Program Files\LitwareInc\LitMail.exe" -inbox

Если (и только если) пользователь указывает Lit Mail в качестве приложения электронной почты по умолчанию в меню "Пуск", приложение Lit Mail может записать своё внутреннее имя в следующее REG_SZ значение:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         Mail
            (Default) = LitMail

Если (и только если) пользователь указывает Lit Mail как приложение электронной почты по умолчанию для всей системы, приложение Lit Mail может записать свое внутреннее имя в значение REG_SZ, указанное ниже. Обратите внимание, что доступ к этому подразделу может быть ограничен. Приложения не должны предполагать, что у всех пользователей есть разрешение на изменение приложения электронной почты по умолчанию на уровне системы.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            (Default) = LitMail

Регистрация в качестве почтового приложения меню "Пуск" по умолчанию не эквивалентна регистрации как системный клиент электронной почты по умолчанию или зарегистрированный почтовый обработчик.

  • Системный почтовый клиент по умолчанию запускается, когда пользователь щелкает чтение электронной почты в меню инструментов Internet Explorer.
  • Зарегистрированный обработчик mailto запускается, когда пользователь щелкает URL-адрес формы mailto:someone@example.com.
  • Приложение электронной почты запускается, когда пользователь щелкает значок электронной почты в меню "Пуск".

Если приложение электронной почты меню "Пуск" по умолчанию не указано, значок "Электронная почта" в меню "Пуск" запускает клиент электронной почты по умолчанию системы.

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

Настройка контекстного меню

Приложение может настроить страницы свойств, которые отображаются, когда пользователь выбирает свойства из контекстного меню значка электронной почты (или Интернет). Например, приложение электронной почты Litware добавляет следующие данные REG_SZ или REG_EXPAND_SZ, чтобы отобразить настраиваемый лист свойств для значка E-mail, а не его лист свойств по умолчанию.

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            LitMail
               shell
                  properties
                     MUIVerb = @C:\Program Files\LitwareInc\ResourceDLL.dll,-789
                     command
                        (Default) = "C:\Program Files\LitwareInc\LitMail.exe" -properties

Элемент данных MUIVerb создается начиная с знака at (@), за которым следует полный путь к библиотеке DLL ресурсов, запятой, знак минуса (-), а затем идентификатор ресурса десятичной строки для отображения. Обратите внимание, что путь к программе LitMail.exe содержит пробелы, поэтому строка пути помещается в кавычки.

Приложение также может добавлять дополнительные команды в контекстное меню. Например, приложение электронной почты Litware добавляет команду поиска со следующими данными REG_SZ:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            LitMail
               shell
                  find
                     MUIVerb = @C:\Program File\LitwareInc\ResourceDLL.dll,-790
                     command
                        (Default) = "C:\Program Files\LitwareInc\LitMail.exe" -contacts

Имя подраздела ниже оболочки (в данном случае "find") является произвольным, нелокализованным именем. Еще раз данные MUIVerb содержат знак '@' (at) в качестве первого элемента, за которым идет путь к библиотеке DLL ресурсов, запятая как разделитель, а затем знак минуса перед десятичным идентификатором строкового ресурса. Например, этот строковый ресурс может быть "Открыть адресную книгу". Наконец, обратите внимание, что строка командной строки содержит пробелы, поэтому она заключена в кавычки.