以下是我试着使用的代码:
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
可是不能导出注册表信息。请教各位,如何使用才是正确的,万分感谢!
能否帮我写出正确的代码?
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
可是不能导出注册表信息。请教各位,如何使用才是正确的,万分感谢!
能否帮我写出正确的代码?
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
常数未定义
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,并传递零值)
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的内容较多,可能要等一些时间