Windows系統(tǒng)中的注冊(cè)表(ResGISter)保存著大量的信息,我們可讀寫注冊(cè)表來(lái)更好地為我們軟件服務(wù)。
下面詳細(xì)講敘如何通過(guò)調(diào)用API函數(shù)操作注冊(cè)表:如何打開、創(chuàng)建主鍵,如何保存鍵值,以及查詢某鍵的鍵值等。
一、常數(shù)定義和API申明(我們會(huì)在使用該API時(shí)對(duì)它進(jìn)行說(shuō)明):
Private Const HKEY_CLASSES_ROOT = &H80000000 主鍵
Private Const HKEY_CURRENT_USER = &H80000001 主鍵
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const SYNCHRONIZE = &H100000
Private Const KEY_ALL_Access = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Const REG_MULTI_SZ = 7
Private Const ERROR_SUCCESS = 0&
Private Const READ_CONTROL = &H20000
Private Const REG_SZ = 1
Private Const REG_DWORD = 4
Private Const REG_EXPAND_SZ = 2
Private Const REG_BINARY = 3
Private Const REG_DWORD_BIG_ENDIAN = 5
Private Const REG_DWORD_LITTLE_ENDIAN = 4
Private Const REG_NONE = 0
Private Declare Function RegOpenKeyEx Lib “advapi32.dll " Alias “RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCreateKey Lib “advapi32.dll " Alias “RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib “advapi32.dll " Alias “RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As
Any, lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
下面詳細(xì)講敘如何通過(guò)調(diào)用API函數(shù)操作注冊(cè)表:如何打開、創(chuàng)建主鍵,如何保存鍵值,以及查詢某鍵的鍵值等。
一、常數(shù)定義和API申明(我們會(huì)在使用該API時(shí)對(duì)它進(jìn)行說(shuō)明):
Private Const HKEY_CLASSES_ROOT = &H80000000 主鍵
Private Const HKEY_CURRENT_USER = &H80000001 主鍵
Private Const STANDARD_RIGHTS_ALL = &H1F0000
Private Const KEY_ENUMERATE_SUB_KEYS = &H8
Private Const KEY_SET_VALUE = &H2
Private Const KEY_CREATE_SUB_KEY = &H4
Private Const KEY_QUERY_VALUE = &H1
Private Const KEY_NOTIFY = &H10
Private Const KEY_CREATE_LINK = &H20
Private Const SYNCHRONIZE = &H100000
Private Const KEY_ALL_Access = ((STANDARD_RIGHTS_ALL Or KEY_QUERY_VALUE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY Or KEY_CREATE_LINK) And (Not SYNCHRONIZE))
Private Const REG_MULTI_SZ = 7
Private Const ERROR_SUCCESS = 0&
Private Const READ_CONTROL = &H20000
Private Const REG_SZ = 1
Private Const REG_DWORD = 4
Private Const REG_EXPAND_SZ = 2
Private Const REG_BINARY = 3
Private Const REG_DWORD_BIG_ENDIAN = 5
Private Const REG_DWORD_LITTLE_ENDIAN = 4
Private Const REG_NONE = 0
Private Declare Function RegOpenKeyEx Lib “advapi32.dll " Alias “RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegCreateKey Lib “advapi32.dll " Alias “RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegSetValueEx Lib “advapi32.dll " Alias “RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpData As Any, ByVal cbData As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As
Any, lpcbData As Long) As Long Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long