Поделиться через


Регистрация программ с помощью типов клиентов

В этом разделе объясняется, как зарегистрировать программу в реестре 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 задокументировано в типах файлов в разделе "Определение атрибутов типа файла".

Полные примеры регистрации

Ниже приведены примеры для отображения полных требований к регистрации для различных типов клиентов.

Пример браузера

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

Макет клиентского реестра Internet Explorer (см. раздел "Определения разделов раздела реестра клиентов")

Общие сведения и руководства по асинхронным подключаемым протоколам

Регистрация приложения в схеме URI