共用方式為


如何使用 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\Clients\StartMenuInternet
  • HKEY_LOCAL_MACHINE\SOFTWARE\用戶端\StartMenuInternet

HKEY_CURRENT_USER\SOFTWARE\Clients\StartMenuInternet 子機碼 說明使用者按一下 [開始] 選單上的 [網際網路] 圖示時所啟動的網際網路瀏覽器。 如果該子機碼是空白或遺失的,則 [開始] 功能表上的 因特網 圖示會設定為儲存在第二個位置的系統預設值,即 HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet,該位置描述了系統上已安裝的所有因特網瀏覽器應用程式。

當新的使用者登入系統時,[開始] 功能表會在 HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet 的子機碼中使用預設值,來顯示預設的網際網路用戶端,並在點擊該圖示時啟動已註冊的應用程式。

如何註冊為預設因特網用戶端

在子機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet 之下,可以有零個或多個子機碼,每個子機碼代表一個已註冊的網際網路瀏覽器應用程式。 例如,假設系統可能會有下列排列方式:

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」 符號 (@) 開頭,不論路徑內的空格為何,路徑周圍都不需要引號。 十進位整數是字串資源的標識碼,包含在指定的 DLL 內,其值要向用戶顯示。 這可讓相同註冊用於多種語言。 每個語言都會提供不同的 ResourceDLL.dll。 這可讓系統根據目前選取的語言顯示正確的字串。

當使用者在 [開始] 功能表選擇 [Lit View] 作為因特網瀏覽器時,下列 REG_SZ 或 REG_EXPAND_SZ 的值將決定顯示的預設圖示。

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 參數指向以 null 結尾的字串 "Software\Clients\StartMenuInternet"。 這會告知作業系統,預設客戶端已更改。

設定預設 \[開始\] 功能表 \[因特網瀏覽器\] 的這些子機碼,必須保留與不支援每個用戶註冊之舊網頁瀏覽器的回溯兼容性。

注意

Windows 7 已移除 [開始] 功能表 [電子郵件] 連結。 不過,本節所討論的這項註冊仍應針對指派預設MAPI用戶端的效果執行。

 

[開始] 選單顯示預設電子郵件用戶端的方式

任何電子郵件應用程式都可以註冊為 [開始] 功能表上的電子郵件客戶程式。 此可見度,加上應用程式 檔案通訊協定 類型的適當註冊,可提供應用程式的預設郵件狀態。

HKEY_CURRENT_USER 子樹中進行的註冊,對於使用控制台的使用者而言,其優先順序高於在 HKEY_LOCAL_MACHINE中進行的相應註冊。 針對系統上的新使用者,會使用儲存在 HKEY_LOCAL_MACHINE 中的設定。 從 Windows XP 開始,[開始] 功能表的[電子郵件]設定會儲存在兩個登錄位置的預設項目中:

  • HKEY_CURRENT_USER\SOFTWARE\用戶端\Mail
  • HKEY_LOCAL_MACHINE\SOFTWARE\用戶端\郵件

HKEY_CURRENT_USER\SOFTWARE\Clients\Mail 子機碼會描述使用者在 [開始] 功能表上按 [電子郵件] 圖示時啟動的電子郵件用戶端。

子機碼 HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 描述系統上安裝的電子郵件應用程式,以及預設電子郵件應用程式。

如果 HKEY_CURRENT_USER\SOFTWARE\Client\Mail 為空白或遺失,則會使用 [開始] 功能表上所定義之 HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 中所定義的預設值來選取出現在 [開始] 功能表上的電子郵件應用程式。

當新的使用者登入系統時,起始功能表會使用子機碼於 HKEY_LOCAL_MACHINE\[軟體]\[用戶端]\[郵件] 中的預設值來顯示預設的電子郵件用戶端,並在單擊該圖示時啟動已註冊的應用程式。

如何註冊為預設電子郵件用戶端

HKEY_LOCAL_MACHINE\SOFTWARE\用戶端\Mail 可以包含零或多個子機碼,每個已註冊的電子郵件應用程式各一個。 例如,假設系統可能會定義下列子機碼:

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,如果使用 %programfiles% 之類的路徑變數,則為 REG_EXPAND_SZ。 LocalizedString 提供可執行檔 (.exe) 或連結庫 (.dll) 檔案的路徑。 請注意,路徑字串以 「at」 符號 (@) 開頭,不論路徑內的空格為何,路徑周圍都不需要引號。 十進位整數是字串資源的標識碼,包含在指定的 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 Tools 選單按一下 [讀取電子郵件] 時,系統預設電子郵件用戶端就會啟動。
  • 當使用者單擊表單的 URL mailto:someone@example.com時,會啟動已註冊 mailto 處理程式。
  • 當使用者單擊 [開始] 功能表上 電子郵件 圖示時,就會啟動 [開始] 功能表電子郵件應用程式。

如果未指定預設的 [開始] 選單電子郵件應用程式,[開始] 選單上的 [電子郵件] 圖示會啟動系統預設的電子郵件用戶端。

本主題未涵蓋將應用程式註冊為預設 mailto 通訊協定處理程式。 想要以這類方式註冊的應用程式應該會繼續遵循此主題的現有規格。

自訂右鍵選單

應用程式可以從 電子郵件(或 因特網)圖示的快捷選單中選取 [屬性] 時,自訂顯示的屬性頁。 例如,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 數據項的建構時以「@」符號開頭,後面接著資源 DLL 的完整路徑、逗號、減號(-),然後是十進位資源字串標識符以顯示。 請注意,LitMail.exe 程式的路徑包含空格,因此路徑字串會放在引號內。

應用程式也可以將其他命令新增至作功能表。 例如,Litware 電子郵件應用程式新增一個 find 命令,其使用的數據為下列 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

下列子鍵名稱 shell(在此案例中為“find”)是任意的非當地語系化名稱。 MUIVerb 數據再次包含「@」符號作為第一個元素,後面接著資源 DLL 的路徑、逗號分隔符,然後是一個減號在數字字串資源標識符前。 例如,該字串資源可能是「開啟通訊錄」。 最後,請注意命令行字串包含空格,因此會以引號括住。