如何用VB读取Dword中十六进制的值
如读取HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs中Home的值。
利用API,谁能给个代码,谢谢了。不要给满屏的代码,什么写入了修改了都粘贴过来,我只要能够真真正正读取出来的。利用command钮一点就能弹出值的。
或者将下面代码给我改改,看看怎么才能读出值,Thank you!
Private Declare Function SHFileExists Lib "shell32" Alias "#45" (ByVal szPath As String) As Long
Private Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Const HKEY_LOCAL_MACHINE = &H80000002
'------------------------
Private Type SECURITY_ATTRIBUTES
nLength As Long
lpSecurityDescriptor As Long
bInheritHandle As Boolean
End Type
Option Explicit
Dim SvrName(14) As String
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 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 RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition 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, ByVal lpData As String, ByVal cbData As Long) As Long
Private Const HKEY_CURRENT_USER = &H80000001
Private Const REG_SZ = 1
Private Const REG_DWORD = 4
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey 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 Const KEY_SET_VALUE = &H2&
Private Const READ_CONTROL = &H20000
Private Const KEY_CREATE_SUB_KEY = &H4&
Private Const STANDARD_RIGHTS_WRITE = READ_CONTROL
Private Const STANDARD_RIGHTS_READ = READ_CONTROL
Private Const KEY_QUERY_VALUE = &H1&
Private Const KEY_ENUMERATE_SUB_KEYS = &H8&
Private Const KEY_NOTIFY = &H10&
Private Const KEY_READ = STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY
Private Const KEY_WRITE = STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or KEY_CREATE_SUB_KEY
Private Const ERROR_SUCCESS = 0&
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Const HKEY_CURRENT_CONFIG = &H80000005
Private Const HKEY_USERS = &H80000003
Dim db
Private Sub aa() '注册表
Dim lbuffer As Long, sbuffer As String, hKey As Long, ltype As Long, ldata As Long
Dim mVal As Long
Dim mSubKey As String
Dim svalue As String
Dim s As Long
Dim ss As SECURITY_ATTRIBUTES
'// 读取注册表 ----------------------------------------------------------------------
mSubKey = "SOFTWARE\Microsoft\Internet Explorer\AboutURLs\"
mVal = RegOpenKeyEx(HKEY_LOCAL_MACHINE, mSubKey, 0, KEY_READ, hKey)
If mVal <> ERROR_SUCCESS Then 'mVal <> ERROR_SUCCESS意思为打开不成功,也就是无路径,将直接调用未检测到的信息
Exit Sub
End If
lbuffer = 255
sbuffer = Space(lbuffer)
mVal = RegQueryValueEx(hKey, "Home", 0, ltype, ByVal sbuffer, lbuffer)
mVal = RegQueryValueEx(hKey, "Home", 0, ltype, ByVal sbuffer, lbuffer)
If mVal <> ERROR_SUCCESS Then
Exit Sub
End If
db = sbuffer '将取出的地址赋予db
End Sub
Private Sub Command1_Click()
Call aa
MsgBox db
End Sub