Регистрация программ с помощью типов клиентов
В этом разделе объясняется, как зарегистрировать программу в реестре Windows в качестве одного из следующих типов клиентов: браузер, электронная почта, воспроизведение мультимедиа, обмен мгновенными сообщениями или виртуальная машина для Java.
Примечание.
Эта информация относится к следующим операционным системам:
- Windows 2000 с пакетом обновления 3 (SP3)
- Windows 2000 с пакетом обновления 4 (SP4)
- Windows XP с пакетом обновления 1 (SP1)
- Windows XP с пакетом обновления 2 (SP2)
- Windows XP с пакетом обновления 3 (SP3)
- Windows Server 2003
- Windows Vista
- Windows Vista с пакетом обновления 1 (SP1)
- Windows 8
Этот раздел включает следующие подразделы:
- Общие элементы регистрации для всех типов клиентов
- Элементы регистрации для определенных типов клиентов
- Полные примеры регистрации
- Связанные статьи
Этот раздел расширяет существующую документацию по регистрации программы в качестве конкретного типа клиента. Ссылки на документацию см. в разделе "Связанные разделы".
Общие элементы регистрации для всех типов клиентов
При регистрации программы в качестве типа клиента большинство записей реестра одинаковы независимо от типа клиента. Однако некоторые записи реестра относятся к типу клиента, и они указаны в разделе "Элементы регистрации для конкретных типов клиентов".
В этом разделе рассматриваются следующие разделы:
- Выбор канонического имени
- Регистрация отображаемого имени программы
- Регистрация значка программы
- Регистрация открытой команды
- Регистрация сведений об установке
Примечание.
Имена подразделов, заданные в курсиве в этом разделе, являются заполнителями для определяемых пользователем имен подразделов или набора возможных значений. Полные примеры с именами на месте приведены в разделе "Полный пример регистрации ".
Все сведения о регистрации типа клиента хранятся в следующем подразделе:
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
ClientTypeName — это одно из следующих имен подключа:
- StartMenuInternet (для браузеров)
- Почта (для электронной почты)
- Носитель (для воспроизведения мультимедиа)
- Мгновенные сообщения (для обмена мгновенными сообщениями)
- JavaVM (для виртуальной машины для Java)
В этой статье вы заметите ссылки на вымышленную компьютерную программу с именем Lit View от Litware Inc., с исполняемым файлом с именем Litview.exe. Эта гипотетическая программа используется взаимозаменяемо в качестве мгновенных сообщений, браузера или другого типа клиентской программы по мере необходимости для иллюстрирующих целей.
Выбор канонического имени
Поставщик должен выбрать каноническое имя программы. Каноническое имя никогда не отображается пользователю, поэтому его не нужно локализовать. Его единственной целью является предоставление уникальной строки, которую можно использовать для идентификации программы. Как правило, это то же самое, что и английское название программы, но это просто соглашение.
Для типов клиентов, отличных от браузеров, каноническое имя может быть любой строкой. Выберите уникальное имя, которое, скорее всего, не будет использоваться другим поставщиком.
Для клиентов браузера каноническое имя должно быть именем (включая расширение) связанного исполняемого файла; например, "Litview.exe".
Ниже приведены некоторые примеры канонических имен.
- Iexplore.exe (браузер)
- Почта Windows (электронная почта)
- Медиаплеер Windows (носитель)
- Windows Messenger (обмен мгновенными сообщениями)
Зарегистрируйте каноническое имя, создав подраздел, как показано здесь. Имя подраздела — каноническое имя. Все сведения, связанные с регистрацией этой программы, будут существовать в этом подразделе.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
Регистрация отображаемого имени программы
Следующим шагом регистрации является указание отображаемого имени программы. Он присваивается в качестве значения в разделе канонического имени, как показано здесь. Обратите внимание, что CanonicalName и ClientTypeName не являются фактическими именами ключей, а только заполнителями для истинных имен, таких как Lit View.
Примечание.
По состоянию на Windows 8 имя, используемое для регистрации для установки доступа к программе и по умолчанию (SPAD) и для программ по умолчанию, должно совпадать, чтобы изменения SPAD запускали регистрации программ по умолчанию.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
LocalizedString = @FilePath,-StringID
Значение LocalizedString — это строка REG_SZ и состоит из знака at (@), полного пути к файлу .dll или .exe, запятой, знаком минуса и десятичным целым числом. Десятичное целое число — это идентификатор строкового ресурса, содержащегося в .dll или .exe файле, значение которого должно отображаться пользователю в качестве имени этого клиента. Обратите внимание, что путь к файлу не требует кавычек, даже если он содержит пробелы.
Регистрация строки отображаемого имени таким образом позволяет использовать одну регистрацию для нескольких языков. Каждая установка языка предоставляет другой файл ресурсов с отображаемым именем, хранящимся в одном и том же идентификаторе ресурса.
В следующем примере показана регистрация вымышленной программы обмена мгновенными сообщениями Lit View. Так как это программа обмена мгновенными сообщениями, подраздел "Каноническое имя" (в данном случае Lit View) хранится в подразделе обмена мгновенными сообщениями .
HKEY_LOCAL_MACHINE
Software
Clients
IM
Lit View
(Default) = Lit View
LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
Обратите внимание на использование записи (по умолчанию) в качестве дополнительного объявления отображаемого имени клиента. Если localizedString отсутствует, вместо этого используется значение (по умолчанию). Это работает со всеми типами клиентов (интернет-браузеры, браузеры электронной почты, мгновенные сообщения и проигрыватели мультимедиа). Чтобы обеспечить обратную совместимость с макетом клиентского реестра Internet Explorer, программы электронной почты должны задать значение подключа "Каноническое имя", отображаемое имя клиента на текущем установленном языке.
Регистрация значка программы
Примечание.
Этот раздел не относится к Windows 2000.
По умолчанию верхний раздел меню "Пуск" Windows XP и Windows Vista содержит значки Интернета и электронной почты. Эти значки отсутствуют в Windows 7 и более поздних версиях. Для клиентов браузера и электронной почты, когда программа назначается в качестве значения по умолчанию для своего типа клиента, для этих записей меню "Пуск " отображается значок зарегистрированной программы.
Регистрация значка программы является обязательной для клиентов браузера и электронной почты. Регистрация значка для воспроизведения мультимедиа, обмена мгновенными сообщениями или виртуальной машины для типов клиентов Java необязательна, а зарегистрированные значки для этих типов клиентов в настоящее время не используются Windows и не отображаются в верхнем разделе меню "Пуск" Windows XP или Windows Vista.
Чтобы зарегистрировать значок клиентской программы, добавьте подраздел DefaultIcon со значением по умолчанию, как показано здесь.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
DefaultIcon
(Default) = FilePath,IconIndex
Значение FilePath — это полный путь к файлу, который содержит значок. Этот путь не требует кавычки, даже если он содержит пробелы.
Значение IconIndex интерпретируется следующим образом:
- Если IconIndex является положительным числом, число используется в качестве индекса отсчитываемого от нуля массива значков, хранящихся в файле. Например, если значок IconIndex равен 1, второй значок загружается из файла.
- Если IconIndex является отрицательным числом, абсолютное значение IconIndex используется в качестве идентификатора ресурса (а не индекса) для значка. Например, если iconIndex имеет значение -3, значок, идентификатор ресурса которого равен 3, загружается из файла.
В следующем примере показана регистрация гипотетического браузера Lit View. Второй значок, хранящийся в файле Litview.exe, используется в качестве значения по умолчанию.
HKEY_LOCAL_MACHINE
Software
Clients
StartMenuInternet
LITVIEW.EXE
DefaultIcon
(Default) = C:\Program Files\LitwareInc\Litview.exe,1
Регистрация открытой команды
Примечание.
Этот раздел не относится к Windows 2000. Следующий шаг необходим только для клиентов браузера и электронной почты.
Предположим, что пользователь выбрал свою программу в качестве программы интернета или электронной почты по умолчанию. Этот пользователь щелкает значок "Интернет " или "Электронная почта " в меню "Пуск" Windows XP или Windows Vista , чтобы открыть программу. На этом этапе выполняется командная строка, зарегистрированная здесь.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
shell
open
command
(Default) = command line
Командная строка должна указать полный абсолютный путь к файлу, а затем необязательные параметры командной строки. Если тип записи REG_EXPAND_SZ, переменные среды можно использовать в пути. Используйте кавычки соответствующим образом, чтобы убедиться, что пробелы в командной строке не интерпретируются неправильно. Командная строка должна выполнять программу с соответствующими значениями по умолчанию. Браузеры обычно по умолчанию отображаются на домашней странице пользователя. Программы электронной почты обычно открывают папку "Входящие" пользователя.
В следующем примере показана регистрация open
команды для гипотетического браузера Lit View. Он не задает параметры командной строки.
HKEY_LOCAL_MACHINE
Software
Clients
StartMenuInternet
LITVIEW.EXE
shell
open
command
(Default) = "C:\Program Files\LitwareInc\Litview.exe"
Обратите внимание, что в этом значении кавычки помещаются вокруг пути, так как он содержит внедренные пробелы. Опущение этих кавычки может привести к неправильной интерпретации командной строки.
Регистрация сведений об установке
Примечание.
Этот раздел не относится к Windows Server 2003.
- Команда переустановки
- Команда "Скрыть значки"
- Команда "Показать значки"
- Конфигурация групповой программы
- Пример регистрации браузера
Функция, с помощью которой пользователь выбирает программы по умолчанию для каждого компьютера, называется и обращается к ней, как показано в следующей таблице. (Windows Vista представила новую функцию, Задайте программы по умолчанию, с помощью которых пользователь может задать значения по умолчанию для каждого пользователя.)
Операционная система | Заголовок | Расположение доступа |
---|---|---|
Windows 7 | Настройка доступа к программе и стандартных значений компьютера |
|
Windows Vista | Настройка доступа к программе и стандартных значений компьютера |
|
Windows XP с пакетом обновления 2 (SP2) | Настройка доступа к программе и значений по умолчанию |
|
Windows XP с пакетом обновления 1 (SP1) | Настройка программ |
|
Для простоты в этом разделе используется название функции Windows 7. Все версии функции часто называются SPAD.
Примечание.
Если вы работаете под управлением Windows 2000 или Windows XP, необходимо установить по крайней мере Windows 2000 с пакетом обновления 3 (SP3) или Windows XP с пакетом обновления 1 (SP1), чтобы просмотреть страницу "Установка доступа к программе и по умолчанию ". В Windows Vista и более поздних версиях доступ к странице "Установка доступа к программе и компьютеру по умолчанию" требуются права администратора. По этой причине разработчикам рекомендуется зарегистрировать для установки программ по умолчанию панель управления элемента, чтобы любой пользователь может управлять приложениями по умолчанию.
В следующем дереве реестра отображаются различные сведения, которые должны быть зарегистрированы в разделе InstallInfo программы, чтобы программа отображалась на странице "Задать доступ к программе и компьютер по умолчанию" в качестве параметра для своего типа клиента. Каждое из этих значений подробно рассматривается в следующих разделах.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
InstallInfo
HideIconsCommand = command line
ReinstallCommand = command line
ShowIconsCommand = command line
IconsVisible = 1
Командная строка должна указать полный абсолютный путь к файлу, а затем необязательные параметры командной строки. Используйте кавычки соответствующим образом, чтобы убедиться, что пробелы в командной строке не интерпретируются неправильно.
Команда переустановки
Переустановка командной строки, объявленной в значении ReinstallCommand, выполняется, когда пользователь использует страницу "Задать доступ к программе и компьютер по умолчанию " для выбора программы в качестве типа клиента по умолчанию. В Windows Vista и более поздних версиях для доступа к этой странице требуется уровень привилегий администратора. В Windows 8, если вы зарегистрировали приложение с одинаковым именем как для задания доступа к программе, так и для программ по умолчанию, то значения по умолчанию, указанные в программах по умолчанию для этого приложения, будут применены для текущего пользователя, а также для выполнения команды переустановки.
Программа, запущенная в командной строке переустановки, должна связать приложение с полным набором типов файлов и протоколов, которые может обрабатывать приложение. Все приложения должны установить возможности обработчика в команде переустановки. Приложения могут использовать команду переустановки для регистрации возможностей, а также при необходимости установить состояние по умолчанию. Когда приложение решит реализовать как возможности, так и состояние обработчика по умолчанию в команде переустановки, оно также должно восстановить все видимые ссылки или сочетания клавиш. Видимые точки входа большинства приложений перечислены в команде "Скрыть значки".
Примечание.
Настоятельно рекомендуется, чтобы приложения реализовали возможности обработки в команде переустановки.
После завершения процесса переустановки программа, запущенная командной строкой переустановки, должна завершиться. Он не должен запускать соответствующую программу; он должен просто зарегистрировать значения по умолчанию. Например, команда переустановки для браузера не должна открывать домашнюю страницу пользователя.
Примечание.
Для клиентов браузера и электронной почты в Windows XP и Windows Vista приложения, которые предпочитают устанавливать возможности обработки и состояние по умолчанию в команде переустановки, должны зарегистрировать соответствующий значок в верхней части меню . Дополнительные сведения см. в разделе "Регистрация меню "Пуск".
Команда "Скрыть значки"
Командная строка, объявленная в значении HideIconsCommand, выполняется, когда пользователь очищает доступ к этой программе на странице Set Program Access and Computer Defaults . Эта командная строка должна скрыть все точки доступа программы, видимые в пользовательском интерфейсе. Конкретные рекомендации предназначены для удаления ярлыков и значков из следующих расположений:
- Значки рабочего стола
- меню ссылки, в том числе Группа запуска
- Ссылки панели быстрого запуска
- Область уведомлений
- Контекстные меню
- Группа задач папки
Эта командная строка также должна предотвратить автоматические вызовы программы, например указанные в разделе реестра run . Поставщики рекомендуется реализовать эти рекомендации в обратном вызове приложения Hide Access.
При скрытии значков не требуется отказаться от регистрации (возможности приложения) типов файлов. Кроме того, вам не нужно отказаться от состояния приложения по умолчанию для типов файлов и протоколов. Это может привести к плохому интерфейсу пользователя, когда эти типы встречаются в пользовательском интерфейсе.
После успешного скрытия значков необходимо обновить значение реестра IconsVisible до 0, как показано ниже.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
InstallInfo
IconsVisible = 0
Запись IconsVisible имеет тип REG_DWORD.
Альтернативный метод скрытия значков в SPAD
Для некоторых устаревших приложений полная реализация Hide Access может оказаться нецелесообразной. Альтернативный метод, который достигает того же эффекта, заключается в удалении приложения. В приведенном ниже разделе показан пример поведения и пример кода для реализации этой альтернативы. Как правило, независимые поставщики программного обеспечения (НЕЗАВИСИМЫе поставщики программного обеспечения) должны избежать этой альтернативы, так как она будет:
- Полностью удалите приложение из системы.
- Удалите выбранные ранее значения по умолчанию.
- Не оставляйте возможности пользовательского интерфейса переустановить приложение.
- Сделать функцию включения доступа недоступной, так как удаление удаляет приложение полностью из SPAD.
Рекомендуемый пользовательский интерфейс выглядит следующим образом:
Когда пользователь снимите флажок "Включить доступ к этой программе" в SPAD, отображается следующий пользовательский интерфейс.
Когда пользователь нажимает кнопку "ОК", элемент "Программы и компоненты" панель управления запускается, чтобы разрешить пользователю удалить приложение.
Пользователи Windows XP должны быть представлены в этом диалоговом окне.
Когда пользователь Windows XP нажимает кнопку "ОК", элемент "Добавить или удалить программы" панель управления запускается, чтобы разрешить пользователю удалить приложение.
Следующий код предоставляет повторно использованную реализацию функции "Скрыть доступ", как описано выше. Его можно использовать в Windows XP, Windows Vista и Windows 7.
#include <windows.h>
#include <shlwapi.h>
#include <strsafe.h>
PCWSTR c_pszMessage1 = L"To hide access to this program, you need to uninstall it by ";
PCWSTR c_pszMessage2 = L"using\n%s in Control Panel.\n\nWould you like to start %s?";
PCWSTR c_pszApplicationName = L"Sample App";
int _tmain(int argc, WCHAR* argv[])
{
OSVERSIONINFO version;
version.dwOSVersionInfoSize = sizeof(version);
if (GetVersionEx(&version))
{
PCWSTR pszCPLName = NULL;
if (version.dwMajorVersion >= 6)
{
// Windows Vista and later
pszCPLName = L"Programs and Features";
}
else if (version.dwMajorVersion == 5 &&
version.dwMinorVersion == 1)
{
// Windows XP
pszCPLName = L"Add/Remove Programs";
}
if (pszCPLName != NULL)
{
WCHAR szMessage[256], szScratch[256];
if (SUCCEEDED(StringCchPrintf(szScratch,
ARRAYSIZE(szScratch),
c_pszMessage2,
pszCPLName,
pszCPLName)))
{
if (SUCCEEDED(StringCchCopy(szMessage,
ARRAYSIZE(szMessage),
c_pszMessage1)))
{
if (SUCCEEDED(StringCchCat(szMessage,
ARRAYSIZE(szMessage),
szScratch)))
{
if (IDOK == MessageBox(NULL,
szMessage,
c_pszApplicationName,
MB_OKCANCEL))
{
ShellExecute(NULL,
NULL,
L"appwiz.cpl",
NULL,
NULL,
SW_SHOWNORMAL);
}
}
}
}
}
}
return 0;
}
Команда "Показать значки"
Командная строка, объявленная в записи ShowIconsCommand, выполняется при проверке пользователем поля "Разрешить доступ к этой программе" на странице "Задать доступ к программе и компьютер по умолчанию". Эта командная строка может восстановить точки доступа программы, включая точки доступа в меню "Пуск ", на рабочем столе и в группе запуска , а также обычные автоматические вызовы, такие как указанные в разделе реестра запуска . Видимые точки доступа для большинства приложений перечислены в команде "Скрыть значки". Приложение не должно изменять значения по умолчанию для каждого пользователя; это изменение должно быть сделано пользователем с помощью программ по умолчанию.
После успешного отображения значков необходимо обновить значение реестра IconsVisible до 1, как показано ниже.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
InstallInfo
IconsVisible = 1
Обратите внимание, что если вы использовали запись HideIconsCommand для запроса на удаление приложения, запись ShowIconsCommand не используется. Он должен быть удален из реестра с остальными сведениями приложения во время процесса удаления.
Конфигурация групповой программы
Примечание.
Этот раздел не относится к Windows 2000.
В рамках подготовки системы OEM может установить конфигурацию, которая скрывает точки доступа для браузера Майкрософт, электронной почты, воспроизведения мультимедиа, обмена мгновенными сообщениями или виртуальной машины для клиентских программ Java и задает собственные программы по умолчанию. Изготовители оборудования могут разрешить пользователям сбрасывать компьютеры в любое время до этой конфигурации по умолчанию, задав следующие значения реестра.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
CanonicalName
InstallInfo
OEMShowIcons = 1
OEMDefault = 1
Если эти ключи заданы, пользователи могут восстановить конфигурацию OEM, выбрав параметр "Производитель компьютера" на странице "Установка доступа к программе и по умолчанию компьютера". Если эти ключи не заданы, параметр "Производитель компьютера" не отображается.
Запись OEMShowIcons , если она присутствует, задает состояние отображения значка для указанного клиента, применяемого, если пользователь выбирает производителя компьютера. Значение 1 приводит к отображению значков, а значение 0 приводит к тому, что значки не отображаются. Если OEMShowIcons отсутствует, выбор производителя компьютера не влияет на параметр отображения значка. OEMShowIcons имеет тип REG_DWORD.
Запись OEMDefault , если она присутствует и задана в значение 1, устанавливает предпочтение OEM для клиента по умолчанию указанного типа. Только один клиент определенного типа может быть помечен как OEM по умолчанию. Если регистрация нескольких клиентов содержит запись OEMDefault , все игнорируются и текущий клиент продолжает использоваться в качестве клиента по умолчанию. Если запись OEMDefault отсутствует или имеет значение 0, то этот конкретный клиент не используется в качестве клиента по умолчанию, если пользователь выбирает производителя компьютера. OEMDefault имеет тип REG_DWORD.
Помимо параметра сброса конфигурации компьютеров до конфигурации по умолчанию, установленной изготовителем оборудования, у пользователей есть три других варианта конфигурации:
- Задайте для компьютера конфигурацию Microsoft Windows. В этом случае страница "Задать доступ к программе" и "Компьютер по умолчанию " обеспечивает доступ ко всем программному обеспечению Майкрософт и не майкрософт на компьютере, зарегистрированном в соответствующих категориях продуктов. Программы Microsoft Windows выбираются в качестве параметра по умолчанию для каждой категории.
- Задайте для своего компьютера конфигурацию, отличной от Майкрософт. Эта конфигурация скрывает точки доступа (например, меню "Пуск") в Windows Internet Explorer, Медиаплеер Windows, Windows Messenger и Microsoft Outlook Express. Он обеспечивает доступ к программному обеспечению, отличному от Майкрософт, на компьютере в этих категориях. Кроме того, если программа, не являющаяся корпорацией Майкрософт, доступна в категории, она имеет значение по умолчанию для этой категории. Если в категории доступно несколько программ, отличных от Майкрософт, пользователю будет предложено выбрать, какую программу, не являющуюся корпорацией Майкрософт, следует использовать в качестве значения по умолчанию.
- Установите настраиваемую конфигурацию. Пользователи делают свои собственные выборы для включения или удаления доступа, смешивая программы Майкрософт и не майкрософт по мере их соответствия. Пользователи устанавливают параметры по умолчанию на основе категорий.
Пользователи могут изменять любой из этих вариантов в любое время.
Пример регистрации браузера
В следующем примере показана полная регистрация InstallInfo для вымышленного браузера Lit View. В этом случае параметры командной строки позволяют файлу Litview.exe выполнять любые действия, необходимые для каждого значения.
HKEY_LOCAL_MACHINE
Software
Clients
StartMenuInternet
LITVIEW.EXE
InstallInfo
ReinstallCommand = "C:\Program Files\LitwareInc\Litview.exe" /reinstall
HideIconsCommand = "C:\Program Files\LitwareInc\Litview.exe" /hideicons
ShowIconsCommand = "C:\Program Files\LitwareInc\Litview.exe" /showicons
IconsVisible = 1
Обратите внимание, что кавычки помещаются вокруг путей, так как они содержат внедренные пробелы.
Элементы регистрации для определенных типов клиентов
Следующие сведения также можно найти в ресурсах, перечисленных в разделе "Связанные разделы" в конце этого раздела.
Регистрация меню "Пуск"
В Windows XP приложения обычно регистрировали значения по умолчанию на уровне компьютера (HKEY_LOCAL_MACHINE), а не в области пользователя (HKEY_CURRENT_USER). С введением Windows Vista в управление учетными записями пользователей (UAC) приложения, которые утверждают слоты Интернета и электронной почты в меню "Пуск", должны реализовать команду переустановки в правильном контексте выполнения.
Примечание.
Ссылка на меню электронной почты была удалена с Windows 7. Однако регистрация, описанная в этом разделе, по-прежнему должна выполняться, так как она назначает клиент MAPI по умолчанию.
Ограниченный пользователь в Windows XP, Windows Vista или Windows 7 не может получить доступ к SPAD. По этой причине разработчикам рекомендуется зарегистрировать для задания программ по умолчанию панель управления элемента, чтобы любой пользователь может управлять значениями по умолчанию для каждого пользователя.
Выбор, сделанный в SPAD, должен влиять только на параметры компьютера.
Задайте значение реестра следующим образом.
HKEY_LOCAL_MACHINE
Software
Clients
ClientTypeName
(Default) = CanonicalName
Примечание.
Следующие сведения относятся только к Windows XP.
Если регистрация по умолчанию на уровне компьютера в HKEY_LOCAL_MACHINE, как показано выше, выполнена успешно, приложение должно удалить значение, назначенное записи По умолчанию в следующем подразделе:
HKEY_CURRENT_USER
SOFTWARE
Clients
ClientTypeName
Если регистрация по умолчанию на уровне компьютера в HKEY_LOCAL_MACHINE, как показано выше, завершается ошибкой, обычно так как у пользователя нет разрешения на запись в подраздел, приложение должно задать следующее значение:
HKEY_CURRENT_USER
SOFTWARE
Clients
ClientTypeName
(Default) = CanonicalName
Это регистрирует каноническое имя только для текущего пользователя, а не для всех пользователей.
После обновления разделов реестра программа должна транслировать сообщение WM_SETTINGCHANGE с помощью wParam = 0 и lParam, указывающих на строку, завершающую значение NULL " Software\ClientTypeName", чтобы уведомить операционную систему о том, что клиент по умолчанию изменился.
Регистрация клиента почты
Для почтового клиента программа должна иметь зарегистрированные параметры в HKEY_CLASSES_ROOT\ключей mailto, чтобы обслуживать URL-адреса, использующие mailto
протокол. Задайте значения и ключи, которые отражают эти параметры в следующем ключе.
HKEY_LOCAL_MACHINE
Software
Clients
Mail
CanonicalName
Protocols
mailto
Эта иерархия реестра заменяет существующую mailto
иерархию реестра, найденную в HKEY_CLASSES_ROOT\mailto. Иерархия остается той же, только расположение изменилось. Дополнительные сведения о формате этой иерархии см. в статье "Общие сведения об асинхронном подключаемом протоколе" и руководствах. Как правило, mailto
протокол регистрируется в программе, а не асинхронном протоколе, в этом случае применяется документация по регистрации приложения в схеме URI.
В следующем примере показан mailto
раздел регистрации обработчика mailto
, зарегистрированного в программе.
HKEY_LOCAL_MACHINE
Software
Clients
Mail
CanonicalName
Protocols
mailto
(Default) = URL:MailTo Protocol
EditFlags = 02 00 00 00
URL Protocol
DefaultIcon
(Default) = %FilePath%,IconIndex
shell
open
command
(Default) = command line
Значение реестра EditFlags задокументировано в типах файлов в разделе "Определение атрибутов типа файла".
Полные примеры регистрации
Ниже приведены примеры для отображения полных требований к регистрации для различных типов клиентов.
- Пример браузера
- Пример браузера почты
- Пример Медиаплеер
- Пример программы мгновенного обмена мгновенными сообщениями
- Пример виртуальной машины для Java
Пример браузера
HKEY_LOCAL_MACHINE
Software
Clients
StartMenuInternet
LITVIEW.EXE
(Default) = Lit View
LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
DefaultIcon
(Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
InstallInfo
ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
IconsVisible = 1
shell
open
command
(Default) = "C:\Program Files\LitwareInc\LITVIEW.EXE" /homepage
Пример браузера почты
HKEY_LOCAL_MACHINE
Software
Clients
Mail
Lit View
(Default) = Lit View
DLLPath = @C:\Program Files\LItwareInc\LitwareMAPI.dll
LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
DefaultIcon
(Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
InstallInfo
ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
IconsVisible = 1
shell
open
command
(Default) = "C:\Program Files\LitwareInc\LITVIEW.EXE" /inbox
protocols
mailto
(Default) = URL:MailTo Protocol
EditFlags = 02 00 00 00
URL Protocol
DefaultIcon
(Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
shell
open
command
(Default) = "C:\Program Files\LitwareInc\LITVIEW.EXE" /mailto:%1
Пример Медиаплеер
HKEY_LOCAL_MACHINE
Software
Clients
Media
Lit View
(Default) = Lit View
LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
DefaultIcon
(Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
InstallInfo
ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
IconsVisible = 1
Пример программы мгновенного обмена мгновенными сообщениями
HKEY_LOCAL_MACHINE
Software
Clients
IM
Lit View
(Default) = Lit View
LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
DefaultIcon
(Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
InstallInfo
ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
IconsVisible = 1
Пример виртуальной машины для Java
HKEY_LOCAL_MACHINE
Software
Clients
JavaVM
Lit View
(Default) = Lit View
LocalizedString = @C:\Program Files\LitwareInc\ResourceDLL.dll,-123
DefaultIcon
(Default) = C:\Program Files\LitwareInc\LITVIEW.EXE,1
InstallInfo
ReinstallCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /reinstall
HideIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /hideicons
ShowIconsCommand = "C:\Program Files\LitwareInc\LITVIEW.EXE" /showicons
IconsVisible = 1
Использованные в примерах компании, организации, продукты, доменные имена, адреса электронной почты, логотипы, имена людей, географические названия и события являются вымышленными. Любое совпадение с реальными компаниями, организациями, продуктами, доменами, адресами электронной почты, логотипами, людьми, местами или событиями случайно и не может быть предметом догадок и предположений.
См. также
-
Регистрация браузера или клиента электронной почты в меню "Пуск" Windows
-
Общие сведения и руководства по асинхронным подключаемым протоколам