用VB判断注册表某键下是否存在某值。
来源:互联网 发布:java正则替换字符串 编辑:程序博客网 时间:2024/05/18 16:56
Private Const HKEY_CURRENT_USER = &H80000001
Private Const HKEY_LOCAL_MACHINE = &H80000002
Private Const HKEY_USERS = &H80000003
Private Const HKEY_PERFORMANCE_DATA = &H80000004
Private Const HKEY_CURRENT_CONFIG = &H80000005
Private Const HKEY_DYN_DATA = &H80000006
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 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 Declare Function RegQueryValue Lib "advapi32.dll" Alias "RegQueryValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal lpValue As String, lpcbValue As Long) As Long
Private Const ERROR_MORE_DATA = 234
Private Declare Function RegSetValue Lib "advapi32.dll" Alias "RegSetValueA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal dwType As Long, ByVal lpData As String, ByVal cbData As Long) As Long
Enum ValueType
REG_NONE = 0
REG_SZ = 1
REG_EXPAND_SZ = 2
REG_BINARY = 3
REG_DWORD = 4
REG_DWORD_BIG_ENDIAN = 5
REG_MULTI_SZ = 7
End Enum
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 Sub Command1_Click()
Dim hKey As Long, ret As Long, lenData As Long, typeData As Long
Dim Name As String
Dim s As String
'读取HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run的internat.exe的value.
Name = "abc" '想要查询的值,自己定
ret = RegOpenKey(HKEY_LOCAL_MACHINE, "Software/Microsoft/Windows/CurrentVersion/Run", hKey)
If ret = 0 Then
ret = RegQueryValueEx(hKey, Name, 0, typeData, ByVal vbNullString, lenData)
End If
s = String(lenData, Chr(0))
ret = RegQueryValueEx(hKey, Name, 0, typeData, ByVal s, lenData)
s = Left(s, InStr(s, Chr(0)) - 1)
MsgBox s
End Sub
---------------------------------------------------------------------------------
该段代码可以直接运行,唯独存在个问题 ,若找不到对应的值。则会出错退出。大家用时可以加个异常处理即可。如在ret = RegOpenKey(HKEY_LOCAL_MACHINE, "Software/Microsoft/Windows/CurrentVersion/Run", hKey) 后面加上On Error Resume Next 或 On Error GoTo XX,具体异常处理方法可以参见本博客VB分类里的VB程序错误处理方法小结 http://blog.csdn.net/chongan_wang/archive/2009/01/20/3839127.aspx 。
- 用VB判断注册表某键下是否存在某值。
- VB判断注册表键值是否存在暨——判断.net 3.5是否安装
- 判断注册表属性是否存在
- VB 判断某表是否存在
- VB 判断文件是否存在
- VB 判断文件是否存在
- VB 判断进程是否存在
- 用VB判断文件、隐藏文件、文件夹是否存在
- 判断list里是否存在某值
- 在Dos批处理中判断注册表项是否存在
- c# 注册表操作,创建,删除,修改,判断节点是否存在
- C# 操作注册表实例(包括判断路径是否存在)
- c# 注册表操作,创建,删除,修改,判断节点是否存在
- windows中判断注册表键值是否存在的一段函数
- c# 注册表操作,创建,删除,修改,判断节点是否存在
- C#注册表操作,创建,删除,修改,判断节点是否存在
- 判断某进程是否存在
- 判断枚举值是否存在
- mysqlhotcopy 热备工具体验与总结
- ReentrantLock和内部锁的性能对比
- Response.Redirect能在新窗口中打开
- PostgrepSql8.3在windows 2003上安装心得
- crontab命令设置使用详解
- 用VB判断注册表某键下是否存在某值。
- AutoCAD 描图方法小结
- 从三个方面进行讲解如何适当优化"SQL"
- NET截取指定长度汉字超出部分以"..."代替
- js弹出窗口和对话框
- js把科学计数法形式的数据转换成非科学计数法的形式
- .NET中获取字符串的MD5码
- linux 知识
- Visual studio debugger 总是出现 just-in-time 解决方案