自動配製程式在windows7下以相容模式運行

來源:互聯網
上載者:User

關於windows程式的相容模式

1、什麼是相容模式?為什麼要使用相容模式 ?

一般來說,應用程式都會針對某個特定的作業系統或者作業系統版本進行最佳化處理。當使用者試圖在新版本的Microsoft Windows 作業系統上運行比較老的應用程式時,就有可能產生程式相容性問題,因為這個程式最初不是為這個較新的作業系統特別編寫的。

例如:運行在 Windows 早期版本上的應用程式可能無法在 Windows XP Professional 正常運行。出現這種情況的部分原因在於:

?

當 Windows 報告了新的、更高的作業系統版本號碼時,應用程式無法運行。通常,只要使用者消除了這個障礙,應用程式就能很好地在 Windows 的新版本上運行了。

?

應用程式調用了較舊版本的 Win32 API 函數,從而在具有大量資源(比如:可用的磁碟空間)的電腦上返回了意外的值。

?

應用程式需要較舊格式的 Windows 資料。

?

應用程式需要使用者資訊(比如:個人及臨時檔案夾)位於特定的位置或採用特定的格式。

這些問題可能導致程式無法執行,或者無法得到正常的結果。為了能在xp、2003、vista上正確運行一些早期的程式,我們需要在設定其相容模式——一種特殊的運行環境,在這種環境下,作業系統類比程式運行所需要的一些早期環境來達到正確啟動並執行目的。

相容模式

相容模式又被稱作“層”,從本質上說,它是一個相容性修補的集合,類比了一個特定的作業系統環境供程式運行使用。例如, Windows 95相容模式就包含了大約50個最常見的相容性修補,通過這些修補,老的Windows 95程式就可以在Windows XP上正常運行。其中的部分修補包括:返回Windows 95版本憑證;精確類比Windows 95/Windows 98/Windows Me 的堆管理器;將Windows 95/Windows 98/Windows Me的案頭和開始菜單重新定向到Windows XP“Documents and Settings”下的相應檔案夾的檔案路徑修補;以及對註冊表進行虛擬化,以模仿Windows 95/Windows 98/Windows Me的註冊表資料。

相容模式存在三種不同的類型:

  • 終端使用者模式,該模式通過Windows XP/2003/Vista中各種不同的外殼特性得以顯現,例如“相容性”選項卡或者程式相容性嚮導。使用者可以通過該介面訪問5種基本的相容模式:Windows 95、Windows 98/Windows Me、Windows NT 4.0、Windows 2000、Windows XP。
  • 系統模式,該模式除了包括上面列出的所有終端使用者模式之外,還提供了幾個其它的選項,獨立軟體開發商(ISV)、系統管理員和其它IT人士可以利用這幾個選項控制應用程式的行為。這些選項包括受限使用者賬戶安全性模式和設定檔模式。當程式必須以某個特殊使用者的身份運行在一個受限制的資訊安全內容環境中時,它需要使用受限使用者賬戶安全性模式。設定檔模式則使用在你決定一個應用程式應該如何同Windows使用者設定檔進行互動的時候。這兩種模式都可以使用QFixApp或者CompatAdmin工具進行訪問和設定,我們將在本文的後面部分中詳細介紹這兩個工具。
  • 定製模式,系統管理員或者其它IT專業人員可以使用CompatAdmin工具(有關該工具的更多資訊請見下文)為某個特殊程式或者程式集建立該模式。在建立完成之後,定製模式只能應用到使用者正在安裝的特定應用程式身上,而且可以使用修補包中的任何需要的修補。

2、如何啟用相容模式

最常見的辦法是,開啟檔案屬性,在“相容性”對話方塊的標籤頁上勾選“以相容模式運行這個程式”複選框,然後在下面的下拉式清單裡選擇所要相容的早期作業系統版本。 這實際上對應於在註冊表HKCU/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Layers下新增一個索引值,索引值名稱是可執行程式檔案的完全路徑,資料類型為reg_sz,資料數值為相容的作業系統代碼。

舉例說明:假設“D:/game/星際爭霸1.12”下的程式starcraft.exe在xp下無法運行,但是在windows 2000 下可以執行,那麼我們就要把相容模式設成windows 2000,這有兩個方法可以實現。方法一:在檔案屬性對話方塊的“相容性”標籤頁上勾選“以相容模式運行這個程式”複選框,然後在下面的下拉式清單裡選擇“windows 2000”;方法二:在命令列輸入下面命令,可以得到相同的效果

reg add "HKEY_CURRENT_USER/Software/Microsoft/Windows NT/CurrentVersion/AppCompatFlags/Layers" /v “D:/game/星際爭霸1.12/starcraft.exe” /t reg_sz /d "WIN2000" /f

事實上,方法一主要是用於使用者操作,而方法二則多用於程式編寫。  

3、深入

3.1作業系統是如何使用相容性技術的?

相容性技術的正常工作取決於作業系統在程式安裝和運行期間與其進行互動所使用的資料庫檔案。除了程式載入程式中的一個快速程式檢查常式之外,應用程式相容性架構始終位於核心作業系統組件(例如核心組件)外部。只有在載入程式的初始化資料庫查詢指出:程式需要相容性技術,這些技術才會被調用。從而消除了在API內部為滿足某一個程式的運行需要使用特殊相容性代碼的需要。相容性修補支援並不能為直觀感覺到,對作業系統或者程式的執行效能也沒有顯著的影響。

作業系統使用的資料庫檔案如下:

  • MigDB.inf,該資料庫被用來向Windows 95、Windows 98和Windows Me系統的升級提供支援。該檔案包含了豐富的匹配資訊和標誌應用程式,它指出了在系統升級之前,哪些程式存在不相容問題,或者哪些程式需要使用者的幹預。
  • NTCompat.inf,該資料庫包含的資訊與MigDB相同,但是它被用來向Windows NT 4.0和Windows 2000系統的升級提供支援。
  • SysMain.sdb,該資料庫既包括匹配資訊也包括相容性修補。你可以在%Windir%/AppPatch目錄下找到該檔案。
  • AppHelp.sdb,該資料庫檔案僅僅儲存了一些提示使用者安裝補丁程式的協助資訊,為他們提供了一些URL地址,便於他們下載非Microsoft 的補丁程式,並且告訴他們在哪些地方可以找到更多的詳細資料。該檔案也可以在%Windir%/AppPatch目錄下找到。

因此,MigDB和NTCompat形成了Windows XP的遷移相容性技術,而SysMain和AppHelp形成(並有效包含)了程式在Windows XP上安裝運行時所需的相容性技術:相容性修補、相容模式和應用程式協助。

 

 

 

 

相容模式本質上是修改C:/Windows/AppPatch下的sysmain.sdb相容性資料庫。(未完……)

註:

1、reg add 參數作用

/v       所選項之下要添加的值名。

/t       RegKey 資料類型

         [ REG_SZ    | REG_MULTI_SZ | REG_EXPAND_SZ |

           REG_DWORD | REG_BINARY   | REG_NONE      ]

         如果忽略,則採用 REG_SZ。

/d       要分配給添加的註冊表 ValueName 的資料。

/f       不用提示就強行覆蓋現有登錄機碼。

2、作業系統代碼

Windows NT 4.0 (Service Pack 5)          NT4SP5

windows 95                                       WIN95

windows 98 or windows ME                  WIN98

windows 2000                                   WIN2000

windows xp                                      WINXP

windows 2003                                   WIN2003

相關關鍵詞:
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.