×

regqueryvalueex

regqueryvalueex(为什么RegQueryValueEx函数调用失败)

admin admin 发表于2024-06-28 22:35:01 浏览11 评论0

抢沙发发表评论

这篇文章给大家聊聊关于regqueryvalueex,以及为什么RegQueryValueEx函数调用失败对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

本文目录

为什么RegQueryValueEx函数调用失败

你是不是好几次调用RegQueryValueEx,第一次正确,第二次就不正确了?看一下错误返回值,如果是234的话,应该是最后一个参数(表示长度的),第二次用的时候忘重新赋值了

用RegQueryValueEx函数的实例

Function GetBinaryValue(Entry As String) MainKeyHandle = HKEY_CURRENT_USER SubKey = "Control Panel\desktop\" rtn = RegOpenKeyEx(MainKeyHandle, SubKey, 0, KEY_READ, hKey) If rtn = ERROR_SUCCESS Then ’如果HKEY_CURRENT_USER\Control Panel\desktop键被成功打开 lBufferSize = 1 rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, 0, lBufferSize) ’读取ScreenSave_Data的值 sBuffer = Space(lBufferSize) rtn = RegQueryValueEx(hKey, Entry, 0, REG_BINARY, sBuffer, lBufferSize) If rtn = ERROR_SUCCESS Then ’如果读取ScreenSave_Data的值成功 rtn = RegCloseKey(hKey) GetBinaryValue = sBuffer ’函数返回ScreenSave_Data的值 Else ’如果读取ScreenSave_Data的值不成功 Call ErrorMsg End End If Else ’如果HKEY_CURRENT_USER\Control Panel\desktop键不能打开 Call ErrorMsg ’调用ErrorMsg()过程 End End If End Function

RegQueryValueEx 返回值=2 是啥错误

如果你是用在注册表读取键值的话,RegQueryValueEx返回2代表该项目的键值未设置在注册表器里显示为"数值未设置"

RegQueryValue函数如何查询注册表 vb

再一次帖出这个注册表操作通用函数 如果楼主用到就用 用不到就算了~~~我已经怕了RegQueryValue了 ’==================================================’注册表操作声明Public Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPublic Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As LongPublic Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As LongPublic Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As LongPublic 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 LongPublic Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As LongPublic 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 LongPublic Declare Function RegDeleteValue Lib "advapi32.dll" Alias "RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) As LongPublic Declare Function RegDeleteKey Lib "advapi32.dll" Alias "RegDeleteKeyA" (ByVal hKey As Long, ByVal lpSubKey As String) As LongPublic Const HKEY_CLASSES_ROOT = &H80000000Public Const HKEY_CURRENT_USER = &H80000001Public Const HKEY_LOCAL_MACHINE = &H80000002Public Const HKEY_USERS = &H80000003Private Const REG_SZ = 1&Private Const REG_EXPAND_SZ = 2&Private Const REG_BINARY = 3&Private Const REG_DWORD = 4&Private Const ERROR_SUCCESS = 0&’==================================================’================================’注册表操作函数’================================’读取注册表字符串键值Public Function GetString(hKey As Long, strPath As String, strValue As String)Dim keyhand As LongDim lResult As LongDim strBuf As StringDim lDataBufSize As LongDim intZeroPos As IntegerDim lValueType As Long ’new addRegOpenKey hKey, strPath, keyhandlResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal 0&, lDataBufSize)If lValueType = REG_SZ Or lValueType = REG_EXPAND_SZ ThenstrBuf = String(lDataBufSize, " ")lResult = RegQueryValueEx(keyhand, strValue, 0&, lValueType, ByVal strBuf, lDataBufSize)If lResult = ERROR_SUCCESS ThenintZeroPos = InStr(strBuf, Chr$(0))If intZeroPos 》 0 ThenGetString = left$(strBuf, intZeroPos - 1)Else: GetString = strBufEnd IfEnd IfEnd IfEnd Function’写入注册表字符串键值Public Sub SetString(hKey As Long, strPath As String, strValue As String, strdata As String)Dim keyhand As LongRegCreateKey hKey, strPath, keyhandRegSetValueEx keyhand, strValue, 0, REG_SZ, ByVal strdata, Len(strdata)RegCloseKey keyhandEnd Sub’读取注册表 DWORD 键值Function GetDword(ByVal hKey As Long, ByVal strPath As String, ByVal strValueName As String) As LongDim lResult As LongDim lValueType As LongDim lBuf As LongDim lDataBufSize As LongDim r As LongDim keyhand As Longr = RegOpenKey(hKey, strPath, keyhand)’ Get length/data typelDataBufSize = 4lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)If lResult = ERROR_SUCCESS ThenIf lValueType = REG_DWORD ThenGetDword = lBufEnd If’Else’ Call errlog("GetDWORD-" & strPath, False)End Ifr = RegCloseKey(keyhand)End Function’写入注册表 DWORD 键值Function SetDword(ByVal hKey As Long, ByVal strPath As String, ByVal strValueName As String, ByVal lData As Long)Dim keyhand As LongRegCreateKey hKey, strPath, keyhandRegSetValueEx keyhand, strValueName, 0&, REG_DWORD, lData, 4RegCloseKey keyhandEnd Function’读取注册表二进制键值Function GetBinary(ByVal hKey As Long, ByVal strPath As String, ByVal strValueName As String) As LongDim lResult As LongDim lValueType As LongDim lBuf As LongDim lDataBufSize As LongDim r As LongDim keyhand As Longr = RegOpenKey(hKey, strPath, keyhand)’ Get length/data typelDataBufSize = 4lResult = RegQueryValueEx(keyhand, strValueName, 0&, lValueType, lBuf, lDataBufSize)If lResult = ERROR_SUCCESS ThenIf lValueType = REG_BINARY ThenGetBinary = lBufEnd IfEnd Ifr = RegCloseKey(keyhand)End Function’写入注册表二进制键值Function SetBinary(ByVal hKey As Long, ByVal strPath As String, ByVal strValueName As String, ByVal lData As Long, ByVal BitNumber As Long)Dim keyhand As LongRegCreateKey hKey, strPath, keyhandRegSetValueEx keyhand, strValueName, 0&, REG_BINARY, lData, BitNumberRegCloseKey keyhandEnd Function’删除一个注册表键值Public Function DeleteValue(ByVal hKey As Long, ByVal strPath As String, ByVal strValue As String)Dim keyhand As LongRegOpenKey hKey, strPath, keyhandRegDeleteValue keyhand, strValueRegCloseKey keyhandEnd Function’创建一个主键Public Function CreateKey(ByVal hKey As Long, ByVal strKey As String)Dim keyhand&RegCreateKey hKey, strKey, keyhandRegCloseKey keyhand&End Function

RegQueryValueEx 返回值=2 是什么错误

对SYSTEM帐户来说,不存在Shutdown Setting键可以在SYSTEM用户的情况下,遍历一遍,看看都有啥

为什么RegQueryValueEx函数调用失败的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于为什么RegQueryValueEx函数调用失败、为什么RegQueryValueEx函数调用失败的信息别忘了在本站进行查找哦。