Option ExplicitPublic Const HKEY_CLASSES_ROOT = &H80000000
Public Const HKEY_CURRENT_USER = &H80000001
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public Const HKEY_USERS = &H80000003
Public Const HKEY_PERFORMANCE_DATA = &H80000004
Public Const HKEY_CURRENT_CONFIG = &H80000005
Public Const HKEY_DYN_DATA = &H80000006Public Const REG_NONE = 0
Public Const REG_SZ = 1
Public Const REG_EXPAND_SZ = 2
Public Const REG_BINARY = 3
Public Const REG_DWORD = 4
Public Const REG_DWORD_BIG_ENDIAN = 5
Public Const REG_MULTI_SZ = 7Public Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hkey As Long) As Long
Public Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hkey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
Public 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 Long         ' Note that if you declare the lpData parameter as String, you must pass it By Value.
Dim hkey As Long
Dim pp As String
pp = "C:\Documents and Settings\tim.bat"
RegCreateKey HEKY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Run", hkey
RegSetValueEx hkey, "test", 0, REG_SZ, ByVal pp, Len(pp) '
RegCloseKey hkey怎么就是加不进去呢?
xpsp2 vb6环境

解决方案 »

  1.   

    RegSetValueEx hkey, "test", 0, REG_SZ, ByVal pp, Len(pp)
    有问题?看了api参数应该没问题啊。怎么就不行呢?
      

  2.   

    '申明调用API
    Public Declare Function RegSetValueExAny Lib "advapi32.dll" Alias _
    "RegSetValueExA" (ByVal hKey As Long, ByVal lpValueName As String, _
    ByVal Reserved As Long, ByVal dwType As Long, lpValue As Any, _
    ByVal cbData As Long) As LongRegSetValueExAny hkey, "test", 0, &01, ByVal pp, Lenb(pp)
    或RegSetValueExAny hkey, "test", 0, &01, ByVal pp, 254
      

  3.   

    上面的是在winxp sp2 + VB6.0 + SP6下完成的