VB中如何實現注冊表的讀寫

發表于:2007-07-14來源:作者:點擊數: 標簽:
于愛武 ---- 毫不夸張的說,注冊表相當于WIN95的“心”,幾乎所有的 Windows 應用程序都毫不例外的要在這里邊“安家筑巢”,如果你也用 VB 編寫了一個程序,是不是也想在注冊表里占有一席之地呢(即使剛才沒有,現在大概也有了吧)?嗯,聽我慢慢道來。 ----
于愛武

---- 毫不夸張的說,注冊表相當于WIN95的“心”,幾乎所有的Windows應用程序都毫不例外的要在這里邊“安家筑巢”,如果你也用VB編寫了一個程序,是不是也想在注冊表里占有一席之地呢(即使剛才沒有,現在大概也有了吧)?嗯,聽我慢慢道來。

---- “API”中專門提供了處理注冊表的函數,不用說也知道,它們肯定功能強大(因為它們是API),但是它們的難度也是不小的。如果你是一個入門者的話,這大概會令你頭痛一陣子。不過VB本身還提供了幾個函數,專門用來處理注冊表,相對來說它們就簡單多了,所以我只對它們做一下說明:

SaveSetting appname, section, key, value

---- 這句話的作用是將應用程序的信息存入注冊表中。其中四個參數都是必要的,其含義分別為:應用程序名,區段,鍵,值。比如我們要為我們的程序(名為“測試”)的主窗體的位置進行存儲,就可以寫成:

SaveSetting “測試”,”main”,”
    top”,frmMain.Top
SaveSetting “測試”,”main”,”
    Left”,frmMain.Left
SaveSetting “測試”,”main”,”
    Width”,frmMain.Width
SaveSetting “測試”,”main”,”
    Height”,frmMain.Height

---- 這樣,就把當前的主窗體的位置進行了記錄,在下次打開這個窗體的時候,我們就可以在把這些值取出來。那么如何才能把我們所存儲的值取出來呢?這就要用到另一個函數:GetSetting,它的語法是:

GetSetting(appname, section, key[, default])

---- 該函數的各部分的意義均和上面的函數的意義相同,所不同的是多了一個default而少了一個value。這個函數最后返回的結果即value值,而default指的是如果所指定的鍵不存在時,則以default指定的值為返回結果。如果沒指定default,則default的默認值是””,即0長度的字符串。接上例,在程序剛開始的時候,我們應該取出上一次所存儲的主窗體的位置,可以寫成:

frmMain.Top = GetSetting
    (“測試”,”main”,”top”)
frmMain.Left = GetSetting
    (“測試”,”main”,”Left”)
frmMain.Height = GetSetting
   (“測試”,”main”,”Height”)
frmMain.Width = GetSetting
    (“測試”,”main”,”Width”)

---- 好了,到此為止,可以暫且告一段落,讓我們打開注冊表,看一看我們把信息是記錄在什么地方了。按照下面的路徑打開: HKEY_CURRENT_USER\Software\VB And VBA Program Settings 你會看到你的“測試”就在里邊放著。

---- 當你的應用程序最終被卸載時,你應該考慮(而且你應該這樣做)把你寫入注冊表中的內容清除掉,因為離開了你的應用程序,它們無疑就是一推垃圾而已。要想將它們刪掉,我們可以用函數:DeleteSetting,它的語法如下:DeleteSetting appname, [section[, key]] 在幾個參數中,只有appname是必須地,其它兩項均可選。比如我們要刪除窗體的“高”這鍵,則可以寫成:DeleteSetting “測試”,”main”,”Height”如果我們要將”main”這個段整個去掉,則可以寫成DeleteSetting “測試”,”main” 如果我們再徹底一些,想將整個應用程序去掉的話,就干脆直接寫成:

DeleteSetting  “測試”

---- 這種方法的不足之處是只能把信息記錄在指定的位置,即

HKEY_CURRENT_USER\Software\VB
    And VBA Program Settings

---- 如果要寫入到別的地方,就要借助于API了。 

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97