获取Windows注册表编辑器版本

时间:2014-09-26 20:04:48

标签: c# regedit

我正在创建一个应该获取整个.reg文件然后执行它的应用程序。 注册表项是由我创建的,我的安装程序适用于win XP,7和8。 但是,如果我将注册表文件标题更改为Windows Registry Editor Version 5.00 在Windows XP上执行失败。每当我将操作系统和标题更改为另一个版本时,就会发生此错误。

我的reg文件如下所示:

Windows Registry Editor Version 5.00 //- here is my problem

[HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\myApp]
"DisplayName"="myApp"

[HKEY_LOCAL_MACHINE\SOFTWARE\MyApp2\myFile]
"Directory"="C:\\myFile"

我对仅在没有Registry.CurrentUser.CreateSubKey或类似情况下执行的.reg文件感兴趣。 这是标准行为还是我遗失了什么? 有没有办法从C#代码中检索Windows注册表编辑器版本?

我正在使用上面示例中的Windows 7。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

首先,.reg文件应具有以下语法:

RegistryEditorVersion
Blank line
[RegistryPath1] 
"DataItemName1"="DataType1:DataValue1"
DataItemName2"="DataType2:DataValue2"
Blank line
[RegistryPath2] 
"DataItemName3"="DataType3:DataValue3"
Blank line

在Windows 2000及更高版本中,该文件以" Windows注册表编辑器版本5.00"开头。 (因此该行不应该造成麻烦),而早期版本以" REGEDIT4"开始。

因此,请确保您拥有正确的.reg文件格式(空行!),并在阅读时尝试使用 System.Text.Encoding.Unicode 编码文件。

相关问题