關於登錄檔向後相容的悲傷故事

2021-10-07 16:32:19 字數 838 閱讀 4443

當你嘗試設計乙個作業系統的時候,向後相容性,是其中乙個你不得不考慮的問題。如果新的應用程式依賴那些為舊版應用程式設計的」小技巧」時,你就得發狂了。

在很久很久以前的乙個遙遠星系(windows 95的beta發布版本的代號是」m3″),我們將那些用來描述特定資料夾的位置的資訊儲存到了名為」shell folders」的登錄檔鍵下面,這樣應用程式就可以通過讀取這些登錄檔值來獲取類似於字型或者我的文件之類的資料夾的路徑。

開發人員收到了windows 95 m3版本,並按照文件的說明使用了上述的登錄檔鍵名。同時,windows 95繼續開發著,我們意識到,使用登錄檔鍵錯誤的儲存這一路徑資訊是不合適的,因為很多東西(類似於控制面板)都不是資料夾,所以它們就不能在登錄檔中進行很好地表達。

另一方面,我們沒有考慮到windows nt系統引入的使用者配置檔案漫遊的特性,這一特性允許使用者可以隨意移動他們的配置檔案,所以將乙個硬編碼的路徑儲存在登錄檔中不是乙個好主意。 所以,我們新增了乙個新的api函式shgetspecialfolderlocation,並且更新了開發文件來指導開發者使用新的方法來獲取特殊資料夾的路徑。而原來使用的登錄檔方法也從開發文件中移除了。

但是為了簡化m3文件到rtm版本文件的遷移,我們還是暫時留下了關於登錄檔這一部分,但是實際上它不再儲存之前我們設計的資訊,而只是真實資料(使用者外殼目錄)的乙個對映。隨後,我們發布了帶有這個臨時登錄檔的windows 95 rtm版本,因為我們意識到還有很少一部分應用程式(大概是四個)還沒有能從登錄檔方法遷移到新的api方法。所以,我們對這個登錄檔鍵的支援減少了很多,所以這個方法就剛剛好能讓這四個應用程式繼續正常工作。所有新開發的應用程式都會使用shgetspecialfolderlocation這個api。

換句話說&#

關於登錄檔

開始 執行 輸入regedit 確定 登錄檔編輯器 1.使網咖的u盤可以使用 修改登錄檔在開始 程式 執行,輸入regedit 就進入登錄檔了 找到登錄檔項hkey local machine system currentcontrolset services usbstor,將右邊的 start ...

關於登錄檔的問題?

關於登錄檔的問題?delphi windows sdk api 是不是只要再標準使用者下 或非administrator 任何程式 指自己編的 都不能對登錄檔進行操做 包括讀寫 即使是用api也不行.是不是這樣的?謝謝啦 自己頂一下 不是的但是我發現用api無法修改登錄檔,比如用regsetvalu...

windows登錄檔 登錄檔的認識

登錄檔的特點 1.登錄檔允許對硬體 系統引數 應用程式和裝置驅動程式進行跟蹤配置,這使得修改某些設定後不用重新啟動成為可能。2.登錄檔中登入的硬體部分資料可以支援高版本的即插即用特性。當windows檢測到機器上的新裝置時,就把有關資料儲存到登錄檔中,另外,還可以避免新裝置與原有裝置之間的資源衝突。...