正在获取windows注册表编辑器版本

本文关键字:编辑器 版本 注册表 windows 获取 | 更新日期: 2023-09-27 18:24:45

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

我的注册文件如下:

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"

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

我在上面的例子中使用windows7。任何帮助都将不胜感激。

正在获取windows注册表编辑器版本

首先,.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编码。