簡單分析VB.NET注冊表組織結(jié)構(gòu)
VB.NET注冊表還是比較常用的,于是我研究了一下VB.NET注冊表,在這里拿出來和大家分享一下,希望對大家有用。在Windows出問題時,如果能夠了解Windows系統(tǒng)的注冊表,將更容易解決問題; 許多商品化的軟件或?qū)I(yè)化的軟件在您的機(jī)器上***安裝的時候都會通過改寫注冊表來完成軟件的正確安裝運(yùn)行,要成為編程高手當(dāng)然需要掌握讀寫注冊表這一技術(shù)。用好注冊表將會為您的應(yīng)用程序增色不少,下面筆者將具體介紹VB中與注冊表有關(guān)的編程方法。
VB.NET注冊表的組織結(jié)構(gòu)
存取注冊表以前, 必須先了解注冊表的組織結(jié)構(gòu), 而了解注冊表的組織結(jié)構(gòu)最簡單的方法便是啟動 Windows 提供的“注冊表編輯器”, 啟動的方法是單擊“開始”菜單的“運(yùn)行”命令,輸入 RegEdit 之后確定,可看到“注冊表編輯器”窗口
#T#注冊表編輯器的結(jié)構(gòu)與資源管理器很類似,左邊窗口的每一個文件夾圖標(biāo)表示一個鍵,就像文件夾下還有子文件夾一樣,注冊表的鍵下也有子鍵。為了完整地表示某一個子鍵,習(xí)慣上是采用文件夾的路徑表示法。 當(dāng)我們在注冊表編輯器左邊窗口選取某一個鍵(或子鍵) 之后,出現(xiàn)在右邊窗口中的是這個鍵的鍵值(Value),鍵值可分成鍵名(Name)及數(shù)據(jù)(Data)兩部分。對每一個鍵而言,至少都含有一個默認(rèn)鍵值(Default Value) , 以 “HKEY_CLASSES_ROOT\.bmp”子鍵為例, 其默認(rèn)鍵值為 “ACDC_BMP”。 除了默認(rèn)鍵值之外, 這個子鍵還含有名稱 (Name)“Content Type”和數(shù)據(jù) (Data)“image/bmp”。
自身提供的關(guān)于VB.NET注冊表的函數(shù)
了解注冊表的組織結(jié)構(gòu)之后, 接下來討論如何存取它。就像我們存取文件時必須指明文件所在文件夾(目錄)一樣, 存取注冊表時, 則必須先指明鍵。鍵在注冊表編輯器中所看到的是一長串的字符串,例如
- “HKEY_LOCAL_MACHINE\SOFTWARE\
- Microsoft\Windows \CurrentVersion”。
在 Visual Basic 6.0 內(nèi)部,已經(jīng)提供了一個標(biāo)準(zhǔn)的注冊位置,以存儲創(chuàng)建于VB的應(yīng)用程序的程序信息:HKEY_CURRENT_USER\Software\VB and VBA Program settings\(為了敘述簡單,以下將這一位置簡稱“標(biāo)準(zhǔn)位置”)。VB 提供了兩個語句和兩個函數(shù)來處理存儲在應(yīng)用程序注冊位置的程序設(shè)置值:
◆函數(shù)GetSetting(appname, section, key[, default]): 檢索注冊表設(shè)置值。
◆語句SaveSetting appname,section,key,value: 保存或創(chuàng)建注冊表設(shè)置值。
◆函數(shù)GetAllSettings(appname, section): 返回一個包含多項注冊表設(shè)置值的數(shù)組。
◆語句DeleteSetting appname, section[, key]: 刪除注冊表設(shè)置值。
以上所用參數(shù)的說明:
[ ]: 表示可選項。
appname:字符串表達(dá)式,包含應(yīng)用程序或工程的名稱,是標(biāo)準(zhǔn)位置下的一個子鍵。
section:字符串表達(dá)式,包含區(qū)域名稱,是 appname 下的一個子鍵。
key:字符串表達(dá)式,標(biāo)準(zhǔn)位置\appname\
section子鍵的鍵名(Value Name)。
value:字符串表達(dá)式,標(biāo)準(zhǔn)位置\appname\
section子鍵對應(yīng)于鍵名(Value Name)的鍵值(Value)。
default:表達(dá)式,如果注冊表項設(shè)置中沒有設(shè)置值,則返回默認(rèn)值。如果省略,則 default 取值為長度為零的字符串 (“”)。
GetAllSettings返回Variant,是內(nèi)容為字符串的二維數(shù)組,該二維數(shù)組包含指定區(qū)域中的所有注冊表項設(shè)置值及其對應(yīng)值。