在VB編程中使用系統“注冊表”

發表于:2007-07-14來源:作者:點擊數: 標簽:
文/朱文剛 用 VB 編程,在打開一個主鍵時,常常會用RegOpenKey,比如要鎖定注冊表就寫成: Private Declare Function RegOpenKey Lib advapi32.dll Alias RegOpen KeyA (ByVal hKey As Long, ByVal lpSubKey As String, phkRes ult As Long) As Long ......
  文/朱文剛

  用VB編程,在打開一個主鍵時,常常會用RegOpenKey,比如要鎖定注冊表就寫成:

  Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpen

  KeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkRes
ult As Long) As Long

  ......

  Dim Hkey,r As Long

  r=RegOpenKey(HKCU,LockREG,Hkey)

  ........

  但是,有沒有想過有的用戶注冊表中沒有System主鍵,就無法打開這個子鍵,也就無法實現這個功能。解決的辦法是用另一個API,RegCreateKey這個API有主鍵則打開,如果沒有就自動創建并打開。所以上面的代碼應寫成

  Private Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long

  ......

  r=RegCreateKey(HKCU,LockREG,Hkey)

  ......

  這樣就不會出錯了。放棄RegOpenKey吧,把用RegOpenKey的地方全部改成RegCreateKey,因為參數相同,所以不會出錯。這樣你的軟件才能在所有用戶的機器上通行無阻。(文中的HKCU = HKEY_CURRENT_USER;LockREG = Software\Microsoft\Windows\CurrentVerson\Policies\System)

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

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