設定程式存取和電腦預設值 (SPAD)
本主題討論在 控制台 中找到的設定程式存取和計算機預設值 (SPAD) 功能。 SPAD 位於 Windows Vista 和更新版本中的預設程式 控制台 專案底下。 在 Windows XP 中,它位於 [新增或移除程式] 項目,標題為 [ 設定程式存取和預設值]。
重要
本主題不適用於 Windows 10。 默認檔案關聯在 Windows 10 中運作的方式有所變更。 如需詳細資訊,請參閱本文中 Windows 10 如何處理預設應用程式的變更一節。
使用設定程式存取和計算機預設值工具
注意
從 Windows 8 起,SPAD 會根據每個用戶來設定目前用戶的預設值。 在 Windows 8 之前,SPAD 會設定每部電腦預設值。 當使用者尚未設定每個用戶預設值時,系統會提示他們設定每個用戶預設值,而不是在每部計算機預設值上回復。 如果使用者先前已設定每個用戶預設值,則 Windows Vista 和 Windows 7 中使用者可能從未看到每部電腦預設值,因為每一使用者預設會覆寫這些操作系統中的每部計算機預設值。
在 Windows XP 中,設定程式存取和預設值是 控制台 的 [新增或移除程式] 專案中的選項。 在 Windows Vista 和更新版本中,它位於 [預設程式] 控制台 專案底下。 針對 已註冊 的程式,它會執行下列函式:
- 啟用每個客戶端類型的預設程式選擇(僅限 Windows 7)。
- 可讓您控制程式的圖示、快捷方式和功能表項的顯示。
- 提供一組預設的預設程序選擇。 (僅限 Windows XP Service Pack 1 (SP1)
此工具用於下列五種客戶端類型。
- 瀏覽器
- 電子郵件
- 立即訊息程式
- 媒體播放器
- 適用於 Java 的虛擬機
設定程式存取和計算機預設值的概觀
Windows 8 設定程式存取和電腦預設值 頁面會顯示在下列螢幕快照中。
向用戶呈現三個可能的組態選項,以及 OEM 提供標題為「計算機製造商」的第四個選項的選項。
Microsoft Windows
Microsoft Windows 組態是由 Windows 提供的一組預設程式所組成,如下列螢幕快照所示。
選取 [Microsoft Windows 組態],也可針對針對五種用戶端類型註冊的每個程序顯示圖示、快捷方式或功能表項。 這些圖示、快捷方式和功能表項可供使用者在 [開始] 功能表或 [開始 ] 畫面、桌面上,以及新增至其他所有位置使用。
非Microsoft
下列 螢幕快照所示的非Microsoft 組態會用於用戶系統上未由Microsoft產生的已註冊應用程式。 這些應用程式可以預安裝於使用者的系統上,也可以是使用者已安裝的非Microsoft應用程式。
注意
應用程式必須註冊才能出現在此頁面。 如需註冊應用程式的指示,請參閱 使用用戶端類型註冊程式。
選取 [非Microsoft] 選項也會移除所有客戶端類型之Microsoft Windows 組態中所列Microsoft程序的圖示、快捷方式和功能表項的存取權。 這些Microsoft圖示、快捷方式和功能表項會從 [ 開始 ] 功能表、桌面和其他新增的位置中移除。
自訂
下列 螢幕快照所示的自定義 組態可讓使用者使用註冊為五種用戶端類型之預設可能性的Microsoft和非Microsoft程序組合,自定義其系統。 這是 Windows 2000 Service Pack 3 (SP3) 中唯一可用的四個選項之一。
Microsoft Windows 和非Microsoft組態中顯示的所有選項,都可以在 [自定義] 區段中提供給使用者,以及不屬於 Windows 的任何額外安裝Microsoft應用程式。 [ 使用我目前的網頁瀏覽器] 單選按鈕會預先選取,如前一個螢幕快照所示。 無法從UI判斷目前的預設瀏覽器。 叫用 Windows 中的網頁連結或檔案是探索目前預設瀏覽器的唯一方法。
當使用者選取程式的 [啟用此程式的存取權] 複選框時,該程式的圖示、快捷方式和功能表項會顯示在 [開始] 功能表 或 [開始] 畫面、桌面或安裝所在的任何其他位置。 清除此選項應該移除這些圖示、快捷方式和功能表項,不過,這些選項的行為完全由應用程式廠商決定。 Windows 不會控制在整個 UI 中啟用或移除存取的方式。 也請務必瞭解應用程式不需要註冊 設定程式存取和計算機預設值。
電腦製造商
標題為「計算機製造商」的第四個類別可以出現在某些系統的 SPAD 視窗中。 計算機製造商可以選擇使用一組自定義預設值預先設定其計算機,並從自定義設定中可用的相同選項中選擇。 (為了說明目的,已註冊一組名為 LitWare 的應用程式,以便與所有用戶端類型搭配使用。用戶可以選擇 [計算機製造商 ] 選項,隨時返回計算機製造商的預設設定,如下列 Windows XP 螢幕快照所示。
注意
此設定不會出現在所有系統上。 如需詳細資訊,請參閱 OEM 預安裝套件 (OPK)。
LastUserInitiatedDefaultChange 登錄值
LastUserInitiatedDefaultChange 值已新增至登錄,以協助應用程式辨識和尊重使用者的預設選項。 值會以 FILETIME 結構的形式保存REG_BINARY數據,其中包含用戶最後一次透過 [設定程式存取和計算機預設值] 工具變更預設選擇的日期和時間(以國際標準時間(UTC)為單位。 此值位於下列子機碼底下。
HKEY_LOCAL_MACHINE
SOFTWARE
Clients
ClientTypeName
LastUserInitiatedDefaultChange = FILETIME
下列案例會針對監視檔案關聯的應用程式使用此值。
- 應用程式會在內部記錄上次設定為其用戶端類型的預設程序的時間(在安裝時或稍後)。
- 應用程式會偵測其用戶端類型的預設程式已變更為本身以外的程式,或它所代表的應用程式(在背景協助程序的情況下)。 Windows 8 不支援。
- 應用程式會讀取 LastUserInitiatedDefaultChange 的值(上次使用者起始的預設變更時間戳),並將它與它儲存的時間戳值做為預設值。
- 如果 LastUserInitiatedDefaultChange 晚於應用程式的預存值,則該應用程式不應該採取任何動作,因為使用者透過 [設定程式存取和預設值 ] 工具明確要求變更。
- 應用程式不會再監視該檔案關聯,直到再次選擇為預設值為止。 Windows 8 不支援。
藉由遵守這類方案,使用者的願望會受到尊重,並維護其系統的最終擁有權。
篩選新增或移除程式清單
注意
本節適用於 Windows XP Service Pack 2 (SP2) 和更新版本,以及 Windows Server 2003 和更新版本。
在 Windows XP 和 Windows Server 2003 中,使用者可以篩選 [新增或移除程式] 底下的 [變更或移除程式] 索引標籤中顯示的應用程式清單,以排除應用程式更新的專案。 在這些版本的 Windows 中,這會透過視窗頂端的 [ 顯示更新 ] 複選框來完成。 預設不會選取 [顯示更新] 選項,因此除非使用者選擇顯示更新,否則不會顯示更新。 當 [新增或移除程式] 關閉時,複選框狀態的變更會持續存在;如果使用者選擇顯示更新,則會繼續顯示,直到使用者清除複選框為止。
注意
Windows XP SP2 更新本身是篩選的例外狀況。 不論複選框狀態為何,它一律都會顯示。
在 Windows Vista 和更新版本中,應用程式更新會顯示在單獨用於更新的個別頁面上,控制台 專用於更新。 當使用者按兩下 [檢視已安裝的更新 ] 工作連結時,會顯示此頁面。 沒有用戶可選取的選項可在與已安裝程式相同的頁面上顯示更新。 儘管 UI 有所變更,但註冊為已安裝程式更新的機制仍與舊版 Windows 相同。
使用 Windows Installer 的Microsoft和非Microsoft應用程式不需要執行任何進一步動作,才能將其更新辨識為更新。 不使用 Windows Installer 的非Microsoft應用程式必須在登錄中宣告特定值,以將其安裝視為現有程式的更新。
下列範例說明要宣告哪些登錄值,以便將安裝辨識為現有程式的更新。
- 父應用程式必須在 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall 子機碼下的子機碼中新增其卸載資訊。 如需使用 Uninstall 子機碼的詳細資訊,請參閱安裝主題。
- 每個父應用程式的更新也必須將其資訊新增為 Uninstall 子機碼的子機碼。 它應該使用其選擇的特定命名慣例,嘗試避免與其他程式的潛在衝突。 下列慣例會保留為子機碼名稱,Microsoft以搭配 Windows 更新使用。
- IEUpdate
- OEUpdate
- “KB” 後面接著六位數,例如 “KB123456”
- “Q” 後面接著六位數,例如 “Q123456”
- 六位數,例如“123456”
- 除了為父應用程式新增的標準卸載資訊之外,每個更新的子機碼還必須包含下列三個專案的兩個。 其值的類型為 REG_SZ。
- ParentKeyName。 數值是必要項。 這是在步驟 1 中宣告之父代子機碼的名稱。 這會將更新與程式產生關聯。
- ParentDisplayName。 數值是必要項。 如果 ParentKeyName 中沒有名為 的子機碼相符,這個值會作為要顯示在 [新增或移除程式] 中的佔位符父程式。
- InstallDate。 此為選用值。 它應該使用表單
yyyymmdd
來指定日期。 此日期用於 UI 中更新專案旁顯示的已安裝 On 資訊。 如果沒有 InstallDate 專案,或存在但未指派任何值,則會發生下列情況:- Windows Vista 和 Windows 7 以外的操作系統版本:不會顯示 [ 安裝] 資訊。
- Windows Vista 和更新版本:使用預設日期。 這是該更新子機碼下任何專案的「上次修改」日期。 這通常是更新新增至登錄的一天。 不過,因為它是「上次修改」日期,因此任何子機碼專案的後續變更都會使 InstallDate 值變更為該變更的日期。
下列範例顯示 LitWare 豪華應用程式更新的相關登錄專案。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
Uninstall
LitWare
DisplayName = LitWare Deluxe
UninstallString = "C:\Program Files\LitWare\LitWare Deluxe\litware.exe" /uninstall
LitWare_Update123456
DisplayName = LitWare Deluxe Update 123456. Fixes printing problems.
UninstallString = "C:\Program Files\LitWare\LitWare Deluxe\Updates\123456.exe" /uninstall
ParentKeyName = LitWare
ParentDisplayName = LitWare Deluxe
InstallDate = 20050513
未提供適當登錄資訊的非Microsoft應用程式,例如在此選項可用之前產生的更新,會繼續正常顯示在已安裝的程式清單中,而且不會篩選掉。
Windows Vista 和 Windows 7 以外的作業系統版本中的更新篩選通常是使用者控制的設定,因此應用程式應該遵守這類設定。 不過,在企業環境中,系統管理員可以控制使用者是否可選擇透過 DontGroupPatches 登錄值篩選更新,如下列範例所示。
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
CurrentVersion
policies
Uninstall
DontGroupPatches = 0 or 1
此值的類型為 REG_DWORD,並解譯如下。
DontGroupPatches 值 | 意義 |
---|---|
0 | [ 顯示更新] 複選框會顯示給使用者。 篩選取決於使用者是否已核取此方塊。 |
1 | [ 顯示更新] 複選框會從 UI 中移除。 更新不會從清單中篩選。 此值基本上會還原為 Windows XP SP1 行為,然後 才引進 [顯示更新 ] 功能。 |
DontGroupPatches 專案不存在 | 這相當於將值設定為 0。 |
DontGroupPatches 在 Windows Vista 和 Windows 7 中沒有作用,其中 UI 不包含複選框,且已註冊的更新一律會經過篩選。
注意
原則只會由系統管理員設定。 應用程式不應該改變此值。 如需如何設定登錄型組策略的詳細資訊,請參閱 組策略 或 Windows Server 組策略。
其他資源
相關主題