用注冊表保存數據(VB函數篇) 作 者 : 揚眉 簡介 注冊表最開始是出現在Windows 3.x,是用來為OLE保存數據的。那時Windows和其應用程序的設置值大多都
保存在各不相同的.INI文件中。例如我們最為熟悉的System.ini和Win.ini就是這樣的文件。當軟件越安越多,
這種文件也越來越多,而且遍布硬盤的各個角落。既不便于管理,也浪費了很多磁盤空間(因為這些文件大多都很。。 當Windows 95推出的時候,注冊表應運而生。所有的設置值,不論是系統的,還是應用程序的,
都被保存在一個樹型結構的數據庫中。這樣確實方便了不少,而且對多用戶環境提供了更好的支持。而對程序員而言就麻煩了一些,
必須了解的是注冊表的結構,又因為注冊表不再是單一的文本文件,所以必須用專門函數來操作注冊表。 注冊表(Registry)是保存程序運行參數和用戶設置的最佳地方。聽過了太多的告誡,編輯注冊表對很多人來
說似乎是一件神秘而復雜的事,但在VB中,通過四個注冊表函數,一切都變得簡單起來。 如果你對注冊表有一些了解,那么應該知道注冊表的結構和我們所熟悉的文件系統的結構是一樣的,都是樹型結構。
用主鍵來代替目錄以劃分各種不同的信息。在主鍵下面還可以有子主鍵和三種不同類型的鍵值。每個鍵值可以是字符串,
二進制值或者雙字值中的一種。Visual Basic 提供了一個標準的注冊位置(主鍵)以存儲創建于 Visual Basic
的應用程序的程序信息: HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ 下面的所有函數所讀寫的注冊表路徑都是以這個路徑為根的相對位置。 SaveSetting 這個函數用來向注冊表數據庫寫入一些數據 SaveSetting appname, section, key, setting appname 在向注冊表寫入數據之前,你必須計劃好一個用在整個應用程序中的appname ?梢园炎员淼膬热荼茸饕慌_計算機,
那么appname就是驅動器。它必須是一個字符串,也可以用數字,不過要用CStr 函數把它轉換成字符串格式。
事實上它代表的是應用程序或工程的名稱。一般來說,appname在整個應用程序中應該保持不便。 section section可以說是這個模型中的目錄,就向一臺計算機上的目錄一樣。它用來把設置分類,可以包含Key或者子section。
如果給它傳遞vbNullChar 這個值的話,就表示要操作的鍵是在根目錄下的,也就是在appname下面的。 key 相當于一個文件名。 setting 它代表文件中的信息,可以是一個數字或者字符串。 執行完后,在注冊表的HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\"主鍵下面
的名為“key”的鍵將被賦值為“setting”,
如果相應的主鍵或者鍵名不存在,將會被創建。 GetSetting 這個函數用來從注冊表中提取數據。 GetSetting(appname, section, key[, default]) Appname,section和key的含義和上面的一樣。 default 如果Visual Basic沒有找到指定的鍵,函數將返回參數default中得值。這個參數是可選的,但是對錯誤情況的處理很方便。
如果沒有選用這個參數,
而指定的鍵的名稱不存在,函數將返回一個長度為0的字符串。 下面看看例子: SaveSetting "Logon Master", "Users\User0", _ "Name", "John" 注釋:這將把數據"John"儲存到注冊表的 "Logon Master\Users\User0\Name" 注釋:不過這是相對路徑,相對于一個根 Debug.Print GetSetting("Logon Master", _ "Users\User0", "Name", "Anonymous" 注釋:這將顯示"John" Debug.Print GetSetting("Logon Master", _ "Users\User1", "Name", "Anonymous" 注釋:這次顯示的將是"Anonymous",因為在 注釋:"Logon Master\Users\User1\Name"沒有預先儲存值。 GetAllSettings 這個函數用來提取某個目錄(主鍵)下面的所有文件(子鍵)。 GetAllSettings(appname, section) 參數的含義和其他的函數都是一樣的。但這個函數和其他幾個比起來更為復雜。他返回的的是一個2維字符串數組,
包含了所有的子鍵名稱和鄉音的子鍵值?纯聪旅孢@個例子,你很容易的就能搞清楚: 注釋: 定義一個Variant類型的變量來保存GetAllSettings返回的二維數組 注釋: Interger類型值用來計數 Dim MySettings As Variant, intSettings As Integer 注釋:先在注冊表中填入一些值 SaveSetting "Logon Master", "Users\User0", _ "Name", "John" SaveSetting "Logon Master", "Users\User0", _ "Priviledges", "Supervisor" 注釋:提取預先設定的數據 MySettings = GetAllSettings("Logon Master", _ "Users\User0") 注釋:顯示出來 For intSettings = LBound(MySettings, 1) _ To UBound(MySettings, 1) 注釋:MySettings(x,0)中包含的是鍵名, 注釋:而MySettings(x,1) 中包含的是鍵值 Debug.Print MySettings(intSettings, 0), _ MySettings(intSettings, 1) Next intSettings 注意:GetAllSettings并不返回目錄名,只是返回鍵名和相應的鍵值。 DeleteSetting 除了保存和提取數據,我們還要能夠刪除注冊表中的注冊項。這就要用到DeleteSetting函數了。 DeleteSetting appname[, section[, key]] 這個函數用來刪除主鍵或者鍵。如果要刪除的是鍵,要給出它所在的鍵名。如果要刪除的是主鍵,
這它下面所有的鍵和子主鍵都會被刪除。如果你要刪除應用程序所有的注冊表信息,就只用指定appname就可以了。 例如: DeleteSetting "Logon Master", "Users\User0", "Name" 注釋:這將刪除Name鍵。 DeleteSetting "Logon Master", "Users" 注釋:這將刪除"Logon Master\Users"主鍵和其下的所有內容。 DeleteSetting "Logon Master" 注釋:這將刪除應用程序"Logon Master"下面的所有內容。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/
領測軟件測試網最新更新
關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073
老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月