如何使用 Windows“开始”菜单注册 Internet 浏览器或Email客户端

注意

本主题适用于 Windows XP、Windows Vista 和 Windows 7。

 

Windows XP 和 Windows Vista 中的“开始”菜单包含默认 Internet (浏览器) 和 电子邮件 (邮件) 客户端的保留槽,通常称为 “开始菜单 Internet 应用程序”。 注册为“开始菜单”菜单的“Internet 应用程序”的应用程序在整个系统 (每台计算机) 执行此操作。 在 Windows Vista 中,用户可以使用 “默认程序” 功能来设置每用户默认值。

当应用程序注册为“开始菜单”Internet 应用程序时,Windows XP 和 Windows Vista 会在“开始”菜单上创建 Internet电子邮件 图标。 单击这些图标会使“开始”菜单检查每个用户注册表子树 (HKEY_CURRENT_USER) 。 如果未找到每用户默认设置,“开始”菜单将在 HKEY_LOCAL_MACHINE 子树中查找每台计算机默认子项。

注意

Windows 的默认安装不会注册每个用户的默认 Internet 或电子邮件程序,仅注册系统范围的默认设置。 这为以前版本的操作系统提供了流畅的升级路径,其中客户端注册仅支持HKEY_LOCAL_MACHINE子树。

 

本主题讨论以下各项:

注意

从 Windows 7 开始,此注册已弃用,它不再提供“开始”菜单 Internet 链接。 Windows 7 及更高版本中将忽略现有注册。 注册为默认的“开始”菜单 Internet 应用程序与注册为默认 Web 浏览器不同。 默认 Web 浏览器用于从系统中的任意位置启动任意 URL。 “开始”菜单 Internet 应用程序仅控制当用户单击“开始”菜单上的 Internet 图标时启动的程序。

 

任何 Web 浏览器应用程序都可以注册,以在“开始”菜单上显示为 Internet 客户端。 这种可见性加上对应用程序的文件和协议类型的正确注册,为应用程序提供默认的浏览器状态。

在HKEY_CURRENT_USER子树中进行的注册对控制台用户的优先级高于HKEY_LOCAL_MACHINE中的相应注册。 对于系统上的新用户,将使用 存储在 HKEY_LOCAL_MACHINE 中的设置。 从 Windows XP 开始,“开始”菜单“Internet 设置保留在两个注册表位置的默认条目中:

  • \ HKEY_CURRENT_USER软件\客户\StartMenuInternet
  • \ HKEY_LOCAL_MACHINE软件\客户\StartMenuInternet

HKEY_CURRENT_USER SOFTWARE\客户端\StartMenuInternet子项\描述当用户单击“开始”菜单上的 Internet 图标时启动的 Internet 浏览器。 如果该子项为空或缺失,则“开始”菜单上的 Internet 图标将设置为存储在 HKEY_LOCAL_MACHINE\SOFTWARE\客户端\StartMenuInternet 的第二个位置的系统默认值,该位置描述系统上安装的所有 Internet 浏览器应用程序。

当新用户登录到系统时,“开始”菜单使用 HKEY_LOCAL_MACHINE\SOFTWARE\客户端\StartMenuInternet 中的子项中的默认值来显示默认的 Internet 客户端,并在单击该图标时启动已注册的应用程序。

如何注册为默认 Internet 客户端

软件\客户端\StartMenuInternetHKEY_LOCAL_MACHINE\子项下,可以有零个或多个子项,每个注册的 Internet 浏览器应用程序一个。 例如,假设系统可能具有以下排列方式:

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

我们将使用名为 Litware Inc 的虚构公司提供的名为“Lit View”的假设浏览器演示注册表项。假设 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,如果使用等 %programfiles% 路径变量,则REG_EXPAND_SZ。 LocalizedString 提供可执行文件 (.exe) 或库 (.dll) 文件的路径。 请注意,路径字符串以“at”号 (@) 开头,无论路径中是否包含空格,都不需要引号。 十进制整数是字符串资源的 ID,包含在指定的 DLL 中,其值将向用户显示。 这样,同一注册就可以用于多种语言。 每种语言提供不同的ResourceDLL.dll。 这使系统能够基于当前所选语言显示正确的字符串。

以下REG_SZ或REG_EXPAND_SZ值通知当用户选择“Lit View”作为“开始”菜单 Internet 浏览器时显示的默认图标的“开始”菜单。

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

以下注册表子项指定当用户单击“开始”菜单上的“Internet”菜单命令时要运行的命令行,假定“Lit View”是所选的“开始”菜单 Internet 浏览器。 例如,命令可能会使用用户的主页打开浏览器,或者命令可以启动独立软件供应商 (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 应用作计算机级别默认 Web 浏览器时,应用程序应设置以下REG_SZ项。 请注意,由于 SPAD 使用管理员权限运行,因此允许访问此子项。

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         StartMenuInternet
            (Default) = LITVIEW.EXE

注意

在 Windows Vista 中,应使用 默认程序 工具(而不是 SPAD)设置用户级默认 Web 浏览器。

以下信息仅适用于 Windows XP。

如果上面所示HKEY_LOCAL_MACHINE下的计算机级默认 Web 浏览器注册成功,则应用程序应删除以下子项下的默认条目:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         StartMenuInternet

如果在 HKEY_LOCAL_MACHINE 下注册计算机级默认 Web 浏览器失败,应用程序应设置REG_SZ数据,如以下示例中所示的 Lit View 应用程序:

HKEY_CURRENT_USER
   SOFTWARE
      Clients
         (Default) = LITVIEW.EXE

 

更新相应的子项后,应用程序广播 WM_SETTINGCHANGE 消息,其 wParam 参数设置为 0,其 lParam 参数指向以 null 结尾的字符串 "Software\Clients\StartMenuInternet"。 这会通知操作系统默认客户端已更改。

必须为默认的“开始”菜单 Internet 浏览器设置这些子项,以保持与不支持按用户注册的旧 Web 浏览器的向后兼容性。

注意

自 Windows 7 起,“开始”菜单Email链接已被删除。 但是,对于分配默认 MAPI 客户端的效果,仍应执行本节中讨论的此注册。

 

“开始”菜单如何显示默认Email客户端

任何电子邮件应用程序都可以注册,以在“开始”菜单上显示为电子邮件客户端。 这种可见性加上对应用程序的文件和协议类型的正确注册,为应用程序提供默认邮件状态。

在HKEY_CURRENT_USER子树中进行的注册对控制台用户的优先级高于HKEY_LOCAL_MACHINE中的相应注册。 对于系统上的新用户,将使用 存储在 HKEY_LOCAL_MACHINE 中的设置。 从 Windows XP 开始,“开始”菜单Email设置保留在两个注册表位置的默认条目中:

  • \ HKEY_CURRENT_USER软件\客户\邮件
  • \ HKEY_LOCAL_MACHINE软件\客户\邮件

软件客户端\邮件HKEY_CURRENT_USER\\子项描述当用户单击“开始”菜单上的“电子邮件”图标时启动的电子邮件客户端。

软件客户端\邮件HKEY_LOCAL_MACHINE\\子项描述安装在系统上的电子邮件应用程序,以及默认的电子邮件应用程序。

如果 HKEY_CURRENT_USER\SOFTWARE\客户端\邮件 为空或缺失,则使用 HKEY_LOCAL_MACHINE\SOFTWARE\客户端\邮件 中定义的默认值来选择显示在“开始”菜单上的电子邮件应用程序。

当新用户登录到系统时,“开始”菜单使用 HKEY_LOCAL_MACHINE\SOFTWARE\客户端\邮件 中的子项中的默认值来显示默认的电子邮件客户端,并在单击该图标时启动已注册的应用程序。

如何注册为默认电子邮件客户端

\ HKEY_LOCAL_MACHINE软件\客户\邮件可以包含零个或多个子项,每个已注册的电子邮件应用程序对应一个子项。 例如,假设系统可能会定义以下子项:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Clients
         Mail
            Eudora
            Windows Mail

我们将使用名为 Litware Inc. Litware Inc. 的虚构公司“Lit Mail”的假设电子邮件客户端演示注册表项,该客户端决定以内部名称“LitMail”注册此电子邮件客户端。 与浏览器一样,内部名称是用作子项名称的唯一字符串,但它永远不会向用户显示。

若要将 Lit Mail 电子邮件客户端安装为默认客户端,请使用以下子项及其条目:

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

LocalizedString 数据的类型为 REG_SZ,如果使用等 %programfiles% 路径变量,则REG_EXPAND_SZ。 LocalizedString 提供可执行文件 (.exe) 或库 (.dll) 文件的路径。 请注意,路径字符串以“at”号 (@) 开头,无论路径中是否包含空格,都不需要引号。 十进制整数是字符串资源的 ID,包含在指定的 DLL 中,其值将向用户显示。 这样,同一注册就可以用于多种语言。 每种语言提供不同的ResourceDLL.dll。 这使系统能够基于当前所选语言显示正确的字符串。

更新相应的子项后,应用程序广播 WM_SETTINGCHANGE 消息,其 wParam 参数设置为 0,其 lParam 参数指向以 null 结尾的字符串 "Software\Clients\Mail"。 这会通知操作系统默认客户端已更改。

为了向后兼容不支持本地化字符串的应用程序,还应将已安装语言的应用程序名称设置为子项的默认值。

以下 REG_SZREG_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_SZREG_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

注册为默认的“开始”菜单电子邮件应用程序不等同于注册为系统默认电子邮件客户端或注册的 mailto 处理程序。

  • 当用户从 Internet Explorer“工具”菜单中单击“读取电子邮件”时,将启动系统默认电子邮件客户端。
  • 当用户单击表单 mailto:someone@example.com的 URL 时,将启动注册的 mailto 处理程序。
  • 当用户单击“开始”菜单上的“电子邮件”图标时,将启动“开始”菜单 电子邮件 应用程序。

如果未指定默认的“开始”菜单电子邮件应用程序,“开始”菜单上的Email图标将启动系统默认电子邮件客户端。

本主题不介绍将应用程序注册为默认 mailto 协议处理程序。 希望以这种方式注册的应用程序应继续遵循有关此主题的现有规范。

自定义上下文菜单

应用程序可以自定义当用户从电子邮件 (或 Internet) 图标的快捷菜单中选择“属性”时显示的属性页。 例如,Litware 电子邮件应用程序添加以下 REG_SZREG_EXPAND_SZ 数据,以显示 电子邮件 图标的自定义属性表,而不是其默认属性表。

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数据的 find 命令:

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

在本例中, shell 下面的子项名称 (“find”) 是任意的非局部化名称。 再次,MUIVerb 数据包含一个“at”符号 (@) 作为第一个元素,后跟资源 DLL 的路径、逗号分隔符,然后是十进制字符串资源标识符前面的减号。 例如,该字符串资源可能是“打开通讯簿”。 最后,请注意,命令行字符串包含空格,因此它用引号引起来。