代码如下:'声明API用于注册表操作
Declare Function RegCreateKey Lib "advapi32.dll" Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long    '建立新key
Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long    '关闭打开的key
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   '设定key下的指定键值'声明操作用常量值
Public Const HKEY_LOCAL_MACHINE = &H80000002Public 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 = 7
'程序主窗体加载
Private Sub Form_Load()
    
    Dim keyName As Long
    RegCreateKey HKEY_LOCAL_MACHINE, "SOFTWARE\XYZZ", keyName
    RegSetValueEx keyName, "DefaultName", 0, REG_SZ, ByVal "测试文字在此", 13
    RegCloseKey keyName  
    
End Sub运行后无错,但是用regedit查看发现并没有建立成功,请问是什么问题呢?
OS为xp sp1
vb6.0

解决方案 »

  1.   

    没看出来有什么错,仔佃看看注册表!
    是不是不是以administrator登录的?
      

  2.   

    Dim   keyName   As   Long ,ret as long
           ret= RegCreateKey  ( HKEY_LOCAL_MACHINE,   "SOFTWARE\XYZZ",   keyName )
            ret= RegSetValueEx(   keyName,   "DefaultName",   0,   REG_SZ,   ByVal   "测试文字在此",   13) 
            ret=RegCloseKey   (keyName  )   
            
    单步执行,看哪个ret不为0
    这个事儿就晕......