您现在的位置是: 软件 > 开发者网络 > 开发资源 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

编程解决注册表问题所需的函数详解
2001-09-26· ·陈劲宏整理··yesky

上一页  1 2 3 4 5 6  下一页


  4.RegQueryValue——读取某Key的默认值(default value)

  VB声明

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
hKey: Key Handle

   lpSubKey:SubKey名称路径

   lpValue:返回读取的Default Value

   lpcbValue:传入lpValue参数的长度,若成功读取了默认值default value,则返回default value字符串的长度(含chr(0))这个和C语言中字符串的处理相似,都是以chr(0)作为结束符。

   返回值: =0,表示成功;≠0,表示失败。

   示例:

ret = RegQueryValue(hKey, Subkey, "", lenS)

  5.RegSetValue——删除某Key的默认值(default value)

  VB声明

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

   hKey:Key Handle

   lpSubKey:Subkey名称或路径

   dwType:数据类型,但在这里只能接受REG_SZ[字符串类型]

   lpData:所设置的字符串

   cbData:lpData字符串的长度,这一长度包括chr(0)字符。

   关于dwType的可能取值

    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

  示例:

Function SetDefaultValue(ByVal hKey As Long, ByVal Subkey As String, ByVal Value As String) As Boolean
Dim ret As Long, lenS As Long, S As String
ret = RegSetValue(hKey, Subkey, REG_SZ, Value, LenB(StrConv(Value, vbFromUnicode)) + 1) SetDefaultValue = (ret = 0)
End Function

  6.RegQueryValueEx——读取某Key的特定名称的值(Value)

  VB声明和参数解释:

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

  hkey:Key Handle

  lpValueName:Value Name

  lpReserved:保留参数,调用时设置为0即可

  lpType:返回读取的数据类型

  lpData:返回读取的数据

  lpcbData:传入lpData数据的长度,若成功读取数据,则返回所读取的数据的长度。

   返回值: =0,表示成功;≠0,表示失败。

  说明:

  ① 这一函数除了可读取指定名称的值之外,也可以读取default value。如果要读取default value,只需要将参数lpValueName设置为""[空字符串]即可。

  ②lpType 的可能取值

  Enum ValueType

  REG_NONE = 0

  REG_SZ = 1 ——>字符串

  REG_EXPAND_SZ = 2 ——>可展开式字符串

  REG_BINARY = 3 ——>Binary数据

  REG_DWORD = 4 ——>长整数

  REG_DWORD_BIG_ENDIAN = 5 ——>BIG_ENDIAN长整数

  REG_MULTI_SZ = 7 ——>多重字符串

  End Enum

  示例:

Dim hKey As Long, ret As Long, lenData As Long, typeData As Long
Dim Name As String
'读取HKEY_LOCAL_MACHINE\Software\Microsoft
'\Windows\CurrentVersion\Run的internat.exe的value.
Name="internat.exe"
ret=RegOpenKey(HKEY_LOCAL_MACHINE,
   "Software\Microsoft\Windows\CurrentVersion\Run", hKey)
if ret=0 then
ret = RegQueryValueEx(hKey, Name, 0, typeData,
   ByVal vbNullString, lenData)'注意ByVal千万别忘了
end if

上一页  1 2 3 4 5 6  下一页

【责任编辑:方舟】
【发表评论】【关闭窗口】
■ 相关内容
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!