?? module1.bas
字號:
Attribute VB_Name = "Module1"
'****************************注冊表操作函數(shù)**********************
'聲明:以下代碼由輕風(fēng)工作室REDICE編寫,引用時(shí)請作一說明。
'****************************************************************
'*****下面先聲明一些常量******************************************
Public Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_DYN_DATA = &H80000006
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const REG_OPTION_NON_VOLATILE = 0
Public Const KEY_ALL_ACCESS = (&H20000 Or &H1 Or &H2 Or &H4 Or &H8 Or &H10 Or &H20) And (Not &H100000)
Public Const REG_SZ = 1
Public Const REG_DWORD = 4
'*****************************************************************
'*****下面聲明注冊表操作中用到的API函數(shù)****************************
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Public 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
Public Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Public 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
Public Declare Function RegSetValueExLong Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, lpValue As Long, ByVal cbData As Long) As Long
Public Declare Function RegSetValueExString Lib "advapi32.dll" Alias "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal Reserved As Long, ByVal dwType As Long, ByVal lpValue As String, ByVal cbData As Long) As Long
Public Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Public 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
Public Declare Function CopyFile Lib "kernel32" Alias "CopyFileA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal bFailIfExists As Long) As Long
'*****************************************************************
'*****下面是我自己寫的一些注冊表操作中常用的一些函數(shù)**************
'*****新鍵注冊表項(xiàng)
Public Function createnewkey(ip As Long, snewkeyname As String)
Dim hnewkey As Long
Dim retval As Long
retval = RegCreateKey(ip, snewkeyname, hnewkey)
If retval = 0 Then
RegCloseKey (hnewkey) '關(guān)閉上面建立或打開的項(xiàng)
End If
End Function
'實(shí)例:在HKEY_CURRENT_USER下建立項(xiàng)"xiaopeng"
'代碼為 createnewkey HKEY_CURRENT_USER ,"xiaopeng"
'******************************************************************
'*******刪除注冊表項(xiàng)***********************************************
Public Function deletekey(ip As Long, skeyname As String)
Dim hKey As Long
Dim retval As Long
retval = RegOpenKeyEx(ip, skeyname, 0, KEY_ALL_ACCESS, hKey)
If retval = 0 Then
RegDeleteKey ip, skeyname
End If
End Function
'實(shí)例:刪除上面建立的HKEY_CURRENT_USER下的項(xiàng)"xiaopeng"
'代碼為 deletekey HKEY_CURRENT_USER ,"xiaopeng"
'******************************************************************
'********新建,設(shè)置數(shù)值名稱*****************************************
Public Function setkeyvalue(ByVal ip As Long, ByVal keyname As String, ByVal valuename As String, ByVal valuesetting As Variant, ByVal valuetype As Long)
Dim retval As Long
Dim hKey As Long
If RegOpenKeyEx(ip, keyname, 0, KEY_ALL_ACCESS, hKey) > 0 Then Exit Function
Select Case valuetype
Case REG_SZ
RegSetValueExString hKey, valuename, 0&, REG_SZ, valuesetting, Len(valuesetting)
Case REG_DWORD
RegSetValueExLong hKey, valuename, 0, valuetype, valuesetting, 4
End Select
RegCloseKey (hKey)
End Function
'實(shí)例:在HKEY_CURRENT_USER下的項(xiàng)"xiaopeng"中建立名為"redice",鍵值為"is xiaopeng ",類型為REG_SZ的新鍵"
'代碼為 setkeyvalue HKEY_CURRENT_USER ,"xiaopeng" ,"redice","is xiaopeng ",REG_SZ"
'又如:在HKEY_CURRENT_USER下的項(xiàng)"xiaopeng"中建立名為"ceshi",鍵值為2,類型為REG_DWORD的新鍵
'代碼為"setkeyvalue HKEY_CURRENT_USER,"xiaopeng","ceshi",2,REG_DWORD
'******************************************************************
'*********刪除數(shù)值名稱*********************************************
Public Function deletevalue(ByVal ip As Long, ByVal keyname As String, ByVal valuename As String)
Dim retval As Long
Dim hKey As Long
retval = RegOpenKeyEx(ip, keyname, 0, KEY_ALL_ACCESS, hKey)
If retval > 0 Then
Exit Function
End If
RegDeleteValue hKey, valuename
RegCloseKey hKey
End Function
'實(shí)例:刪除HKEY_CURRENT_USER下的項(xiàng)"xiaopeng"中名為"redice"的新鍵
'代碼為 deletevalue HKEY_CURRENT_USER ,"xiaopeng","redice"
'******************************************************************
'**********查詢已存在的數(shù)值內(nèi)容************************************
Public Function getvalue(ByVal ip As Long, keyname As String, valuename As String) As String
Dim retval As Long
Dim hKey As Long
Dim valuesetting As Variant
Dim cddata As Long
Dim lvalue As Long
Dim svalue As String
Dim lvaluetye As Long
retval = RegOpenKeyEx(ip, keyname, 0, KEY_ALL_ACCESS, hKey)
If retval > 0 Then
getvalue = ""
Exit Function
End If
retval = RegQueryValueEx(hKey, valuename, 0, lvaluetype, ByVal vbNullString, cddata)
If retval <> 0 Then
RegCloseKey hKey
Exit Function
End If
Select Case lvaluetype
Case REG_SZ
svalue = String(cddata, Chr(0))
RegQueryValueEx hKey, valuename, 0, lvaluetype, ByVal svalue, cddata
valuesetting = Left$(svalue, cddata)
getvalue = CStr(valuesetting)
Case REG_DWORD
RegQueryValueEx hKey, valuename, 0, lvaluetype, lvalue, cddata
valuesetting = lvalue
getvalue = CStr(valuesetting)
End Select
End Function
'實(shí)例:獲取HKEY_CURRENT_USER下的項(xiàng)"xiaopeng"中名為"redice"的新鍵的鍵值
'代碼為 getvalue HKEY_CURRENT_USER ,"xiaopeng","redice"
'*********************************************************************
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -