如何:在 Windows XP 中撰寫相容性階層指令碼

文章翻譯 文章翻譯
文章編號: 286705 - 檢視此文章適用的產品。
本文曾發行於 CHT286705
全部展開 | 全部摺疊

在此頁中

結論

Windows XP 包括各種技術,可將相容性修正程式動態套用至非 Windows XP 專用的程式。相容性修正程式可用來協助較舊版的程式,以避免因新作業系統的變更而產生問題。這些相容性修正程式可單獨使用,也可以整組使用,稱為相容性階層。這些階層已針對各種較常使用的組態方式定義完成。

舉例而言,針對特別為 Microsoft Windows 95 編寫的程式,提供必要相容性修正程式的階層。本文說明如何在 Windows XP 中撰寫相容性階層的指令碼。


套用相容性階層

Microsoft 已建立出一系列工具,以便透過圖形使用者介面 (GUI) 工具和命令提示,存取使用相容性技術。一般而言,GUI 工具為套用相容性修正程式或階層時較好的方式,但有時候仍會遭遇到階層必須透過指令碼或批次檔套用的情形。本文中說明如何透過指令碼或批次檔套用相容性修正程式。

以下命令語法應於批次檔或指令碼中套用相容性階層時使用:
set __COMPAT_LAYER=[!]layer_name1 [layer_name2 ...]
注意 :在本命令語法中,於「set」和「COMPAT」之間的雙底線 (_) 前方,應有一個空白。此命令必須有兩個底線方可執行。

Layer_name:準備套用的相容性階層短名稱。
[!] 階層不應加入至資料庫檔案中的現有相容性修正程式中。

注意 :相容性階層名稱必須以單一空白區分。

例如:
set __COMPAT_LAYER=Win95 DisableThemes

set __COMPAT_LAYER=!Win95 DisableThemes
相容性階層以此方式套用後,如需停用請使用相同的指令但不指定相容性階層。

例如:
set __COMPAT_LAYER=
各個最常見的相容性階層,都有其較短的名稱版本,以便於指令碼中配合 set __COMPAT_LAYER 命令使用。

可用相容性階層清單包括下列短名稱及其完整名稱:
  • DisableThemes - Disable Visual Themes
  • ProfilesSetup - Profile Setup Support
  • 256Color - 256 Color
  • 640x480 - 640 x 480 Screen Resolution
  • Win95 - Windows 95
  • Win98 - Windows 98 / Windows Me
  • Win2000 - Windows 2000
  • NT4SP5 - Windows NT 4.0 SP 5
在以此方式套用相容性階層時,亦可確定相容性階層確實以遞迴方式,傳送至其他可能由批次檔中的命令所產生的處理序中。當您在指令碼或批次檔中,達到不再需要相容性階層的狀態時,即可使用 set __COMPAT_LAYER 命令取消階層,而無需指定相容性階層。所有在相容性階層有效期間啟動的處理序,在正式終止之前仍然會在相容性階層下執行。


疑難排解

實作此命令的方法,請考慮以下的範例:您有一個批次檔,可於啟動程式前執行各種重要的設定工作。程式需要一系列包含在 Windows 95 相容性階層中的相容性修正程式。如果相容性階層僅需套用至 Setup.exe 程式,而無需套用至任何 Setup.exe 可能產生的處理序,則建議使用 GUI 工具。接著以滑鼠右鍵按一下 .bat 或 .cmd 檔案,並將相容性階層套用至批次檔。

下列範例說明部份可用於此案例類型的批次檔:
Md C:\Program Files\MyCompany\MyApp
Copy D:\i386\*.* C:\Program Files\MyCompany\MyApp
C:\Program Files\MyCompany\MyApp\Setup.exe
如果 Setup.exe 程式需要 Windows 95 相容性階層所提供的相容性修正程式,且必須遞迴傳送至任何由 Setup.exe 產生的處理序,則不適合使用 GUI 工具。您可在呼叫需要相容性階層的程式之前,於批次檔內加入以下命令,以便解決此問題:
Md C:\Program Files\MyCompany\MyApp
Copy D:\i386\*.* C:\Program Files\MyCompany\MyApp
set __COMPAT_LAYER=Win95
C:\Program Files\MyCompany\MyApp\Setup.exe
這樣可以有效地將 Windows 95 相容性階層套用至 Setup.exe 程式,並且遞迴傳送至 Setup.exe 產生的任何處理序。

這項技巧可用於批次檔 (如前述範例),同時亦可成功套用於登入指令碼中。針對所有需要相容性階層,以及必須經由批次檔呼叫,同時可能產生其他處理序的程式所產生的問題,網路管理員皆可以此作為解決方案。


參考










本文件是根據 Microsoft Knowledgebase 文件編號 Q286705 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q286/7/05.asp

屬性

文章編號: 286705 - 上次校閱: 2001年11月2日 - 版次: 1.0
這篇文章中的資訊適用於:
  • Microsoft Windows XP Home Edition (家用版)
  • Microsoft Windows XP Professional Edition (商用版)
關鍵字:?
kbhowto kbhowtomaster kbtool KB286705
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com