怎样读去注册表中的字符值呀??我怎么读不出呀。
如体 问题点数:40、回复次数:9Top
1 楼lilimaoming(嗷嗷)回复于 2003-02-05 15:44:07 得分 10
声明:
Public Const ERROR_SUCCESS = 0&
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const REG_SZ = 1 ' Unicode nul terminated string
Public Const READ_CONTROL = &H20000
Public Const STANDARD_RIGHTS_READ = (READ_CONTROL)
Public Const KEY_QUERY_VALUE = &H1
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Public Const KEY_NOTIFY = &H10
Public Const SYNCHRONIZE = &H100000
Public Const KEY_READ = ((STANDARD_RIGHTS_READ Or KEY_QUERY_VALUE Or KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not SYNCHRONIZE))
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 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 ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Public Declare Function RegQueryValueExString Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
程序:
reg_value = Space(20)
result = RegOpenKeyEx(HKEY_LOCAL_MACHINE, "software\MYSOFTWARE\MYPRO", 0, KEY_READ, reg_phkey)
If result = ERROR_SUCCESS Then
result = RegQueryValueExString(reg_phkey, "MYTEXT", 0&, REG_SZ, reg_value, Len(reg_value))
RegCloseKey (reg_phkey)
End If
Top
2 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2003-02-06 16:22:10 得分 0
VB操作注册表:
http://www.sqreg.com/file/vb/reg_01.htm
http://www.sqreg.com/file/vb/reg_02.htm
http://www.sqreg.com/file/vb/reg_03.htm
http://www.sqreg.com/file/vb/reg_04.htm
http://www.sqreg.com/file/vb/reg_05.htm
http://www.sqreg.com/file/vb/reg_06.htm
http://www.sqreg.com/file/vb/reg_07.htm
Top
3 楼qiuzhongshu(不长毛的猪)回复于 2003-02-06 23:13:55 得分 0
我以前用了一个模块,没问题
要的话留下emailTop
4 楼suntt(两条腿的狗)回复于 2003-02-10 08:15:56 得分 10
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 RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hkey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, ByVal lpData As Any, lpcbData As Long) As Long ' Note that if you declare the lpData parameter as String, you must pass it By Value.
注意RegQueryValueEx 中的lpData参数前一定要加byval
Public Function ReadValue(mainkey As Long, keyname As String, value As String) As String
Dim phkResult As Long
Dim re As Long
Dim buffer As String
Dim size As Long
On Error GoTo err
If RegOpenKeyEx(mainkey, keyname, 0, KEY_ALL_ACCESS, phkResult) <> ERROR_SUCCESS Then
Call RegCloseKey(phkResult)
End If
re = RegQueryValueEx(phkResult, value, 0, REG_SZ, 0&, size)
If re <> ERROR_SUCCESS Then
Call RegCloseKey(phkResult)
End If
buffer = String$(size - 1, 0)
re = RegQueryValueEx(phkResult, value, 0, REG_SZ, buffer, size)
If re <> ERROR_SUCCESS Then
Call RegCloseKey(phkResult)
End If
ReadValue = buffer '返回函数值
err:
Call RegCloseKey(phkResult)
End FunctionTop
5 楼missbo()回复于 2003-02-10 21:38:31 得分 10
楼上的你们,做得都比不上MS,我建议:
请将你计算机中下列文件加到你的工程中,你的程序问题就解决了!
:\Program Files\Microsoft Visual Studio\VB98\Template\Code\Registry Access.basTop
6 楼mjcom(不明飞行物)回复于 2003-02-11 12:30:53 得分 0
upTop
7 楼hereticclub(雪狐)回复于 2003-02-11 13:43:38 得分 0
我自己写了一个类,专门读Ini和注册表的,一直在用,想要的话找我,我的QQ:988112
前提是你要先给我200分!Top
8 楼smartluwei(斯马特卤味)回复于 2003-02-11 13:49:49 得分 0
upTop
9 楼sakurako(看晨雾散开,你就是我一生的最爱...)回复于 2003-02-11 20:35:20 得分 10
GetStringValue("HKEY_CURRENT_USER\Keyboard Layout\Preload\5", "A string")Top




