C++ 使用windows API将注册表文件导入注册表
我正在尝试编写一些C/C++代码,将.reg文件导入注册表。MSDN具有为特定密钥导入文件的功能,但我想导入整个HKCU配置单元。没有Win32 API可将C++ 使用windows API将注册表文件导入注册表,c++,c,windows,registry,C++,C,Windows,Registry,我正在尝试编写一些C/C++代码,将.reg文件导入注册表。MSDN具有为特定密钥导入文件的功能,但我想导入整个HKCU配置单元。没有Win32 API可将.reg文件导入注册表1。您必须自己解析文件,并根据需要将指令转换为适当的注册表API函数调用-Reg(Open | Create)KeyEx(),RegSetValueEx(),RegDelete(Key | Value)()等 1:不要被RegLoadKey()、RegReplaceKey()和RegRestoreKey()的存在所迷惑。
.reg
文件导入注册表1。您必须自己解析文件,并根据需要将指令转换为适当的注册表API函数调用-Reg(Open | Create)KeyEx()
,RegSetValueEx()
,RegDelete(Key | Value)(
)等
1:不要被RegLoadKey()
、RegReplaceKey()
和RegRestoreKey()
的存在所迷惑。它们用于加载由RegSaveKey/Ex()
创建的文件,这些文件不是基于文本的.reg
文件
否则,您可以只使用
ShellExecute/Ex()
或CreateProcess()
执行regedit.exe/s
,或使用.reg
文件的路径作为命令行参数,让regedit
/reg
为您处理导入。这将是最简单的方法。如果要生成外部工具,还可以使用带有/import
开关的reg.exe
。值得注意的是,reg.exe
不需要管理员权限,除非注册表操作需要管理员权限,而regedit.exe
被标记为始终提升。@BenVoigt谢谢,我已经更新了我的答案“我想导入整个HKCU配置单元”,这会导致灾难。每个用户注册表的重要部分在创建用户配置文件时采用永久值,不应被覆盖。您可以谈论备份和恢复操作,但不能谈论“导入”。