以下是我试着使用的代码:
Private Type SECURITY_ATTRIBUTES
        nLength As Long
        lpSecurityDescriptor As Long
        bInheritHandle As Long
End Type
Private Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" _
  (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As _
  SECURITY_ATTRIBUTES) As LongPrivate Sub Command1_Click()
Dim ss As SECURITY_ATTRIBUTES
    ss.lpSecurityDescriptor = 0
RegSaveKey HKEY_LOCAL_MACHINE, "D:\regmhn.reg", ss
End Sub
可是不能导出注册表信息。请教各位,如何使用才是正确的,万分感谢!
能否帮我写出正确的代码?

解决方案 »

  1.   

    RegSaveKey(
        HKEY hKey, // handle of key where save begins  
        LPCTSTR lpFile, // address of filename to save to 
        LPSECURITY_ATTRIBUTES lpSecurityAttributes  // address of security structure 
       );
    定义的文件名应该时文本文件,而且文件不能已经建立
    typedef struct _SECURITY_ATTRIBUTES { // sa  
        DWORD  nLength; 
        LPVOID lpSecurityDescriptor; 
        BOOL   bInheritHandle; 
    } SECURITY_ATTRIBUTES; 
    你的数据结构的中的定义可能不对Private Sub Command1_Click()
    Dim ss As SECURITY_ATTRIBUTES
    dim lrc as long
    const   HKEY_LOCAL_MACHINE=&H80000002&lrc=RegSaveKey(HKEY_LOCAL_MACHINE, "test.txt", null)
    if lrc=0 then
       .....函数执行成功
    end if
      

  2.   

    Private Const HKEY_LOCAL_MACHINE = &H80000002
      常数未定义
      

  3.   

    【VB声明】
      Private Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile As String, lpSecurityAttributes As SECURITY_ATTRIBUTES) As Long【别名】
      RegSaveKeyA【说明】
      将一个项以及它的所有子项都保存到一个磁盘文件 【返回值】
      Long,零(ERROR_SUCCESS)表示成功。其他任何值都代表一个错误代码 【参数表】
      hKey -----------  Long,一个已打开项的句柄,或指定一个标准项名  lpFile ---------  String,要在其中保存注册表信息的一个磁盘文件的名字  lpSecurityAttributes -  SECURITY_ATTRIBUTES,为保存的信息提供的安全信息。可设为NULL,表示采用默认的安全信息(变成ByVal
      As Long,并传递零值)
      

  4.   

    Option Explicit
    Private Const HKEY_LOCAL_MACHINE = &H80000002
    Private Const HKEY_USERS = &H80000003
    Private Const ERROR_SUCCESS = 0&
    Private Declare Function RegSaveKey Lib "advapi32.dll" Alias "RegSaveKeyA" (ByVal hKey As Long, ByVal lpFile _
      As String, ByVal lpSecurityAttributes As Long) As Long
    Private Sub Command1_Click()
        Dim lrc As Long,mrc as long     
        lrc = RegSaveKey(HKEY_LOCAL_MACHINE, "D:\myregmhn.dat", 0&)
        mrc = RegSaveKey(HKEY_USERS, "D:\myreguser.dat", 0&)
        If lrc = ERROR_SUCCESS Then
           MsgBox "注册表HKEY_LOCAL_MACHINE备份成功!"
        End If
        If mrc = ERROR_SUCCESS Then
           MsgBox "注册表HKEY_USERS备份成功!"
        End If
    End Sub
    试试看吧,你的代码在我这没有问题,另外注意,由于HKEY_LOCAL_MACHINE的内容较多,可能要等一些时间