共用方式為


如何使用 Windows 開始功能表註冊網際網路瀏覽器或Email用戶端

注意

本主題適用于 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軟體\客戶\StartMenuInternet
  • \ HKEY_LOCAL_MACHINE軟體\客戶\StartMenuInternet

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

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

如何註冊為預設網際網路用戶端

在子機碼下方HKEY_LOCAL_MACHINE\SOFTWARE\用戶端\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。 這可讓系統根據目前選取的語言顯示正確的字串。

下列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 起,已移除 [開始] 功能表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\ClientMail空白或遺失,則會使用 HKEY_LOCAL_MACHINE\SOFTWARE\Clients\\Mail中定義的預設值,來選取出現在 [開始] 功能表上的電子郵件應用程式。

當新的使用者登入系統時,[開始] 功能表會在HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail的子機碼中使用預設值來顯示預設的電子郵件用戶端,並在按一下該圖示時啟動已註冊的應用程式。

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

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

更新適當的子機碼之後,應用程式會廣播 WM_SETTINGCHANGE 訊息,並將 其 wParam 參數設定為 0,而其 lParam 參數指向 null 終止的字串 "Software\Clients\Mail" 。 這會通知作業系統預設用戶端已變更。

為了與不支援當地語系化字串的應用程式回溯相容性,已安裝語言的應用程式名稱也應該設定為子機碼的預設值。

下列 REG_SZREG_EXPAND_SZ 值會通知使用者選取 [開始] 功能表做為 [開始] 功能表郵件程式時,預設圖示的 [開始] 功能表顯示:

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 通訊 協定處理常式。 想要以這類方式註冊的應用程式應該繼續遵循此主題的現有規格。

自訂操作功能表

應用程式可以自訂當使用者從電子郵件 (或網際網路) 圖示快捷方式功能表選取[屬性] 時所顯示的屬性頁。 例如,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

在此案例中 ,殼 層下方的子機碼名稱 (「find」) 是任意的非本機名稱。 同樣地,MUIVerb 資料會包含 「at」 符號 (@) 作為第一個專案,後面接著資源 DLL 的路徑、逗號分隔符號,然後在小數位符串資源識別碼前面加上減號。 例如,該字串資源可能是「開啟通訊錄」。 最後,請注意命令列字串包含空格,因此會以引號括住。