• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            twzheng's cppblog

            『站在風(fēng)口浪尖緊握住鼠標(biāo)旋轉(zhuǎn)!』 http://www.cnblogs.com/twzheng

              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              136 隨筆 :: 78 文章 :: 353 評論 :: 0 Trackbacks

            從零講起 徹底走出注冊表應(yīng)用的迷霧

            摘自:歲月聯(lián)盟 - 技術(shù)社區(qū)
            Windows始終有一快菜鳥的禁區(qū),那就是注冊表。Windows將其運(yùn)行時(shí)所需的配置信息存儲(chǔ)在以樹狀格式組織的數(shù)據(jù)庫(注冊表)中,只要知道設(shè)置對應(yīng)的注冊表位置,就能對系統(tǒng)中幾乎所有的設(shè)置進(jìn)行修改。但微軟官方對于注冊表的資料實(shí)在有限,菜鳥對于注冊表操作就更感覺無從下手了,就像在黑暗中行走。

              四盞照明燈帶你走出注冊表誤區(qū)

              誤區(qū)1.普通用戶不應(yīng)該修改注冊表

              微軟對于注冊表的態(tài)度一直有些隱瞞,甚至在幫助文件中都寫道:“盡管可以用注冊表編輯器查看和修改注冊表,但通常不比這樣做,因?yàn)楦牟徽_可能會(huì)損壞系統(tǒng)。”微軟希望所有的系統(tǒng)設(shè)置都能夠在其設(shè)計(jì)的系統(tǒng)管理工具中進(jìn)行,而不是修改注冊表,正因?yàn)槲④涀陨矶紝τ脩粜薷淖员肀Р恢每煞竦膽B(tài)度,所以大多數(shù)用戶,始終對注冊表有一種敬畏心理。

              照明燈:實(shí)際只要掌握了注冊表的基本知識和“注冊表編輯器”使用方法, 就能進(jìn)行修改。盡管微軟提供的資料不多,但從Google上搜索相關(guān)的關(guān)鍵字(如“修改注冊表+去掉快捷方式小箭頭”)就能找到相應(yīng)的注冊表位置。

              誤區(qū)2.注冊表=注冊表編輯器

              這可能是最讓混淆的概念了,很多人都認(rèn)為“注冊表”和“注冊表編輯器”是一種東西。

              菜鳥A:“什么是Windows注冊表呢?”

              菜鳥B:“這個(gè)我知道,不就是regedit.exe嗎?依次點(diǎn)擊“開始-運(yùn)行”,輸入regedit.exe打開的就是注冊表啦!”

              菜鳥A:“哦,原來是這樣。不過用regedt32.exe不是也能改注冊表嗎?難道有2個(gè)注冊表?”

              照明燈:注冊表是一個(gè)保存系統(tǒng)、軟件設(shè)置數(shù)據(jù)的數(shù)據(jù)庫,而“注冊表編輯器”只是對于整個(gè)系統(tǒng)的讀取/修改工具。這種概念的錯(cuò)誤就好比你將記錄營業(yè)額的Excel表格于打開此表格的Excel軟件都稱作“營業(yè)額表格”。在Windows 9X/2000中,regedit.exe和regedt32.exe是兩個(gè)程序,其中的regedt32.exe無法進(jìn)行REG文件的導(dǎo)入,也無法在DOS(16位狀態(tài))下運(yùn)行;而在Windows XP中,使用regedit.exe和regedt32.exe打開的其實(shí)是同一程序,regedt32.exe的功能只不過是調(diào)用regedit.exe。

              誤區(qū)3.系統(tǒng)的永動(dòng)機(jī)----無限提升系統(tǒng)性能

              剛才說道在注冊表中存放了系統(tǒng)的軟硬件設(shè)置數(shù)據(jù),也就是說,只要修改得當(dāng),能在一定程度提升系統(tǒng)性能,有些朋友剛學(xué)會(huì)修改注冊表,就以為修改注冊表可以無限的提升系統(tǒng)性能,并且因此頻繁修改注冊表。

              照明燈:適當(dāng)?shù)男薷淖员砜梢蕴嵘到y(tǒng)性能,但這種提升是以硬件為基礎(chǔ)的,只有當(dāng)操作系統(tǒng)本身的設(shè)置相對硬件系統(tǒng)來說比較保守時(shí),我們才有可能通過修改相關(guān)設(shè)置來發(fā)掘硬件本身潛能,試系統(tǒng)得到優(yōu)化。但如果硬件本身就不怎么樣,通過修改注冊表來提升系統(tǒng)性能便只能成為一種奢望。如果真能這樣大家就不必掏銀子升級舊機(jī)器了,只需改改注冊表就行了。

              誤區(qū)4.舍近求遠(yuǎn)

              先來看一個(gè)例子:在Windows XP中,默認(rèn)啟動(dòng)的“分組相似任務(wù)欄按鈕”功能可以使原來日益擁擠的任務(wù)欄變的寬敞起來,可是用慣了Windows 98/2000的用戶可能會(huì)覺得不習(xí)慣,想要禁用這個(gè)功能,有些朋友就會(huì)自然的想到尋找注冊表中的修改位置,最后好不容易遭到了注冊表中禁用此功能的方法:打開“注冊表編輯器”,找到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced,將其下的“TaskbarGlomming”鍵值改為0來達(dá)到目的。其實(shí)系統(tǒng)本身已經(jīng)提供了相應(yīng)的設(shè)置方法,只需要右鍵單擊任務(wù)欄空白處,并選擇“屬性”,然后在“任務(wù)欄屬性”窗口中去除“分組相似任務(wù)欄按鈕”的勾選即可。

              照明燈:從這個(gè)例子就可以看出,其實(shí)在注冊表中的絕大多數(shù)選項(xiàng),Windows本身就提供了直觀的修改方法。如果同樣能達(dá)到目的的,又何必舍近求遠(yuǎn)呢?很多網(wǎng)站提供的技巧中都包含此類“偽技巧”。有一個(gè)簡單的識別方法:在網(wǎng)上搜索到了注冊表的修改位置后,打開“注冊表編輯器”檢查這個(gè)注冊表位置中對應(yīng)的選項(xiàng)鍵值是否存在,如果不存在需要新建則多數(shù)是真的,而如果已經(jīng)存在了,則很有可能在系統(tǒng)中已經(jīng)提供了相應(yīng)的設(shè)置功能。

              三個(gè)疑問讓你認(rèn)清注冊表的真面目

             

              1.為什么一定要使用注冊表

              或許你會(huì)問,注冊表既復(fù)雜,修改不當(dāng)又容易引發(fā)系統(tǒng)故障,而DOS或早期的Windows沒有注冊表卻也能正常工作,那么現(xiàn)在的Windows一定需要注冊表呢?

              DOS是一個(gè)純命令操作平臺,沒有圖形界面,一切輸入均通過命令的方式來解決。要打開文本文件1.txt需要輸入“edit 1.txt”命令才行,也就是說“要打開什么文件”,“用什么程序打開此文件”這些問題都必須由你來告訴計(jì)算機(jī)。而現(xiàn)在的Windows系統(tǒng)中,要打開1.txt的屬性只需在“資源管理器”雙擊此文件即可,你只要指定要打開的文件,計(jì)算機(jī)就會(huì)根據(jù)你要打開的文件類型自動(dòng)選擇合適的應(yīng)用程序進(jìn)行操作,這種智能的打開方法就是由注冊表中保存的“文件關(guān)聯(lián)”數(shù)據(jù)(出了“文件關(guān)聯(lián)”外,注冊表還存放了其他很多重要的設(shè)置數(shù)據(jù))。這種發(fā)展是由計(jì)算機(jī)的復(fù)雜性決定,在DOS時(shí)代可能無需這種機(jī)制,但如果現(xiàn)在Windows沒有“文件關(guān)聯(lián)”,那成千上萬種文件類型一定會(huì)讓你看眼花。

              2.注冊表的“媽媽”是誰

              Windows設(shè)計(jì)之初,并沒有采用注冊表這種方式來存放軟硬件配置信息,而是使用了兩個(gè)擴(kuò)展名為INI的文件(system.ini和win.ini)。對于INI文件大家應(yīng)該很熟悉了,很多“綠色軟件”都聲稱其不在注冊表中寫入任何數(shù)據(jù),但大多會(huì)在其安裝目錄下留下一個(gè)或幾個(gè)INI文件。既然當(dāng)初使用的是INI,為什么后來又改成注冊表了呢?這是因?yàn)镮NI文件有一個(gè)致命的弱點(diǎn)就是大小不能超過64KB,隨著軟硬件功能的日益進(jìn)步,其所需的配置數(shù)據(jù)體積也在不斷膨脹,INI文件早已無法滿足這種數(shù)據(jù)量的要求了。另外INI其實(shí)是依據(jù)某種定義規(guī)范的文本文件,編輯過程極易出錯(cuò)并由此導(dǎo)致系統(tǒng)故障,為了克服這些問題,在Windows 95及其后的版本中,Window系統(tǒng)都無一例外的采用了注冊表機(jī)制,并將原來由多個(gè)INI組成的軟硬件配置信息統(tǒng)一到了一起,形成一個(gè)數(shù)據(jù)庫,那就是注冊表。

              3.注冊表的家在哪里

              既然注冊表是一個(gè)數(shù)據(jù)庫,那么這個(gè)數(shù)據(jù)庫文件在那里呢?其實(shí),難怪不少剛接觸電腦的朋友誤以為regedit.exe就是注冊表,這是由于對注冊表數(shù)據(jù)庫的組成不清楚而造成的。Windows 98注冊表的數(shù)據(jù)文件主要由System.dat和User.dat這兩個(gè)文件組成,并保存在C:\Windows目錄下,其中System.dat存儲(chǔ)的是系統(tǒng)和硬件相關(guān)的配置,而User.dat則保存軟件配置和用戶配置,Windows 2000/XP注冊表的數(shù)據(jù)文件主要存儲(chǔ)在%Windir%\System32\config目錄中的Default,Sam,Security,System,software和Userdiff等6個(gè)文件中,除此之外,還有部分?jǐn)?shù)據(jù)保存在用戶的配置文件目錄中,比如Window 2000/XP中的Administrator的部分注冊表數(shù)據(jù)就保存在C:\Documents and Settings\Administrator目錄的Ntuser.dat文件中,所以只需要Administrator登陸系統(tǒng)后其目錄下的NTUSER.DAT就不能被刪除,因?yàn)樗呀?jīng)被加載到注冊表中了。

              兩個(gè)知識點(diǎn)理清錯(cuò)綜復(fù)雜的注冊表脈絡(luò)

              1.查查注冊表元素的身份證

              運(yùn)行regedit.exe打開“注冊表編輯器”,就能在其左側(cè)看到注冊表的分支結(jié)構(gòu),其中以文件夾方式表示的稱為“鍵”,而在選中一個(gè)鍵后在窗口右側(cè)顯示的則稱為“項(xiàng)”。在網(wǎng)上搜索到的修改教程中經(jīng)常會(huì)提到“根鍵”,“主鍵”,“子鍵”,“鍵值項(xiàng)”,是什么意思呢?

              ①根鍵(Root Key)是指在注冊表編輯器左側(cè)以“HKEY”作為名稱前綴的位置,因其位于注冊表最項(xiàng)層被稱為根鍵,如Windows XP的注冊表中包括五大根鍵,分別為HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS和HKEY_CURRENT_CONFIG。這些根鍵都可所寫的,譬如HKEY_CLASSES_ROOT就可以簡寫為HKCR,其它的則以此類推。

              ②主鍵(Main Key)是指根鍵下面于根鍵最近的鍵,主鍵通常包括一個(gè)或多個(gè)子鍵或鍵值,如圖中HKEY_LOCAL_MACHINE包括5個(gè)主鍵。

              ③子鍵(Sub Key)的位置是相對的,并不固定。某個(gè)鍵下面包含的另一個(gè)鍵則稱它為前者的子鍵。但主鍵則不能稱為根鍵的子鍵,這種以相對位置關(guān)系來命名的方式不能用于根鍵和主鍵。

              ④鍵值項(xiàng)(Value entry)是指顯示在“注冊表編輯器”右側(cè)的項(xiàng)目,每個(gè)鍵值項(xiàng)包括名稱,類型和數(shù)據(jù)三部分。鍵值項(xiàng)的名稱可以由任意字符,數(shù)字,代表符和空格組成,但不能使用反斜杠。不同鍵值,主鍵和子鍵的鍵值項(xiàng)可以同名,但同一鍵中的鍵值項(xiàng)不能同名。鍵值項(xiàng)所定義的內(nèi)容即為該鍵值項(xiàng)的值(即“鍵值”),其中最多能存放64KB的數(shù)據(jù)。值的數(shù)據(jù)類型可以是字符串,二進(jìn)制值,DWORD(雙字節(jié))值等。

              小提示:上面的描述方法較為規(guī)范,平時(shí)我們還習(xí)慣將“子鍵”稱為“分支”,而將“鍵值項(xiàng)”簡稱為“項(xiàng)”,這些稱謂沒有本質(zhì)區(qū)別,只是叫法習(xí)慣不同罷了。

              2.真正的根鍵只有兩個(gè)

              Windows 98的注冊表有6個(gè)鍵值,而Windows 2000/XP/2003系統(tǒng)的根鍵數(shù)則是5個(gè),但這些根鍵中只有HKEY_LOCAL_MACHINE和HKEY_USERS是真正的注冊表鍵,其它幾個(gè)鍵值都是從這兩個(gè)根鍵的某個(gè)分支映射出來的,相對于這兩個(gè)根鍵深層分支的一個(gè)快捷方式或者別名,主要是為了方便用戶操作。

              ⑴HKEY_LOCAL_MACHINE

              這個(gè)根鍵存儲(chǔ)的是安裝在當(dāng)前計(jì)算機(jī)上的硬件和軟件配置信息,比如硬件設(shè)備的驅(qū)動(dòng)程序,特定軟件設(shè)置和Windows系統(tǒng)安裝配置等數(shù)據(jù)。這些信息對當(dāng)前系統(tǒng)中的所有用戶均保持一致。這個(gè)根鍵下面還有5個(gè)重要的主鍵,其中Software和System最為關(guān)鍵,平時(shí)對系統(tǒng)進(jìn)行相關(guān)調(diào)整大多集中在這兩個(gè)鍵上。

              ①Software子鍵:保存于這臺電腦中安裝的應(yīng)用程序和相關(guān)的設(shè)置,許多應(yīng)用程序都使用該鍵值保存特定設(shè)置。關(guān)于Windows的許多設(shè)置都存在于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion中。

              ②System子鍵:在這里精確的確定了Windows所裝載的設(shè)備驅(qū)動(dòng)程序和服務(wù),以及當(dāng)Windows啟動(dòng)時(shí)所使用的各種參數(shù)(如在網(wǎng)絡(luò)上的計(jì)算機(jī)名稱和當(dāng)前硬件配置恩見)。

              ⑵HKEY_USERS

              HKEY_USERS包含有電腦特定用戶的配置數(shù)據(jù),Windows在此根鍵下的一個(gè)子鍵中為登陸該電腦的每個(gè)用戶存儲(chǔ)配置數(shù)據(jù)。如果電腦只有一個(gè)用戶使用,那么所看到的就是單獨(dú)一個(gè)子鍵,稱為“.DEFAULT”

              而HKEY_USERS\S-1-5-21-1078081533-1202660629-1343024091-500(不同的電腦不一樣)則是當(dāng)前登陸用戶的配置數(shù)據(jù),其中S-1-5-21-1078081533-1202660629-1343024091-500就是這個(gè)目前登陸用戶的SID,每一個(gè)網(wǎng)絡(luò)上的用戶都被域用戶管理器分配了一個(gè)SID,每個(gè)SID是唯一的,所以它依賴于登陸用戶,其分支數(shù)據(jù)是從用戶配置文件的Ntuser.dat文件調(diào)出的。

              3.改頭換面我也認(rèn)識你

             

              前文提到只有HKEY_LOCAL_MACHINE和HKEY_USERS是才真正的注冊表鍵。也就是說如果更改了其它別名分支中的某個(gè)鍵或鍵值,那么在HKEY_LOCAL_MACHINE和HKEY_USERS也會(huì)做出相應(yīng)更改,通常我們還可將它們稱為“別名”,下面是這些別名的實(shí)際位置:

              ①HKEY_CLASSES_ROOT--HKEY_LOCAL_MACHINE\SOFTWARE\Classes的別名。包含有文件類型和程序之間的關(guān)聯(lián)。

              ②HKEY_CURRENT_USER--HKEY_USERS一個(gè)分支別名,該分支包含有當(dāng)前登陸用戶的配置數(shù)據(jù),如果是單一用戶HKEY_CURRENT_USER則指向HKEY_USERS\.DEFAULT

              ③HKEY_CURRENT_CONFIG

              --HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Hardware Profiles\Current的別名,其中ControlSet001還有可能是ControlSet000,ControlSet002等,它包含當(dāng)前的硬件配置。

              附表1 HKEY_USERS部分重要分支說明

              .DEFAULT\AppEvents ------- 列出了事件相應(yīng),描述和各種系統(tǒng)功能的聲音

              .DEFAULT\Console ------- 保存了MS-DOS窗口的選項(xiàng),布局,熒屏顏色和字體設(shè)置

              .DEFAULT\Control Panle ------- 所有在控制面板里配置設(shè)置的信息全保存在這個(gè)鍵和它的子鍵中

              .DEFAULT\Environment ------- 保存了環(huán)境變量設(shè)置,特定的臨時(shí)文件位置

              .DEFAULT\Keyboard Layout ------ 保存的是鍵盤布局設(shè)置,其中默認(rèn)設(shè)置是美國傳統(tǒng)鍵盤布局

              .DEFAULT\Software ------保存軟件的安裝設(shè)置,缺省用戶只有微軟生產(chǎn)的軟件的設(shè)置

              SID\Network ------ 所有連接到其他系統(tǒng)的映射配置

              SID\Printers ------ 所有安裝,共享和連接的打印機(jī)配置

              SID\Sofeware ------單獨(dú)的用戶擴(kuò)展,基于為用戶或者被用戶安裝的其他軟件。

              附表2

              HKEY_CLASSES_ROOT

              配置單元包含的子項(xiàng),列出了當(dāng)前已計(jì)算機(jī)上注冊的所有COM服務(wù)器和與應(yīng)用程序相關(guān)的所有文件擴(kuò)展名。

              HKEY_CURRENT_USER

              保存著當(dāng)前登陸到由這個(gè)注冊表服務(wù)的計(jì)算機(jī)機(jī)上的用戶配置文件,其中子項(xiàng)包含環(huán)境變量,個(gè)人程序組,桌面設(shè)置,網(wǎng)絡(luò)連接,打印機(jī)和應(yīng)用程序首選項(xiàng)

              HKEY_LOCAL_MACHINE

              保存操作習(xí)用及硬件相關(guān)信息的配置單元,是一個(gè)公共配置信息,與具體用戶無關(guān)

              HKEY_USERS

              包含的子項(xiàng),含有當(dāng)前計(jì)算機(jī)上所有的用戶配置文件

              HKEY_CURRENT_CONFIG

              包含的子項(xiàng),列出了計(jì)算機(jī)當(dāng)前會(huì)話的所有硬件配置信息

              HKEY_DYN_DATE

              包含系統(tǒng)硬件的當(dāng)前狀態(tài),也包含了那些需要更新和檢索的數(shù)據(jù),此鍵只存在于Windows 98/ME 系統(tǒng)中。

            posted on 2008-01-12 15:16 譚文政 閱讀(415) 評論(0)  編輯 收藏 引用 所屬分類: windows 編程
            三上悠亚久久精品| 久久亚洲AV成人无码电影| 久久人妻少妇嫩草AV蜜桃| 66精品综合久久久久久久| 日韩精品久久无码中文字幕| 99精品国产免费久久久久久下载| 久久久久国色AV免费观看| 精品久久久久一区二区三区| 色综合久久最新中文字幕| 93精91精品国产综合久久香蕉| 日韩亚洲欧美久久久www综合网| 国产精品久久亚洲不卡动漫| 久久国产免费观看精品3| 久久夜色精品国产噜噜麻豆| 国产精品99久久免费观看| 精品一区二区久久久久久久网站| 国产一级持黄大片99久久| 91精品国产91久久久久久| 精品水蜜桃久久久久久久| 人妻无码精品久久亚瑟影视| 7777精品伊人久久久大香线蕉| 欧美久久久久久| 国产精品狼人久久久久影院 | 97精品依人久久久大香线蕉97| 久久夜色撩人精品国产| 欧美日韩中文字幕久久久不卡| 少妇被又大又粗又爽毛片久久黑人| 久久精品国产亚洲AV香蕉| 久久精品国产亚洲av水果派| 99久久精品九九亚洲精品| 亚洲午夜精品久久久久久app| 亚洲av日韩精品久久久久久a| 91久久精品无码一区二区毛片| 亚洲国产香蕉人人爽成AV片久久| 久久久久亚洲精品天堂| 久久精品国产精品亚洲| 波多野结衣AV无码久久一区| 久久久国产精品福利免费| 2021最新久久久视精品爱| 国内精品久久久久久久久电影网 | 久久亚洲国产精品成人AV秋霞|