如何使用c#创建注册表项

本文关键字:注册表 创建 何使用 | 更新日期: 2023-09-27 18:17:07

我需要创建一个基于从蛋糕脚本的32/64位系统的发现注册表项。我可以在c#蛋糕网站上看到文件操作参考,目录操作参考。但我找不到注册表相关的参考c#蛋糕。谁能让我知道是否有任何选择,使注册表条目使用c#蛋糕?如果有,请指定参考链接。这将帮助我在蛋糕脚本继续很多。

如何使用c#创建注册表项

除了使用c#,您还可以使用所有主要Windows版本附带的Reg.exe

你可以使用这个工具与蛋糕使用StartProcess别名。

一个这样做的例子:

DirectoryPath   system32Path    = Context.Environment
                                    .GetSpecialPath(SpecialPath.Windows)
                                    .Combine("System32");
FilePath        regPath         = system32Path.CombineWithFilePath("reg.exe");
string          keyName         = "HKEY_CURRENT_USER''Software''Cake";
string          valueName       = "Rocks";
string          valueData       = "1";
ProcessSettings regSettings     = new ProcessSettings()
                                    .WithArguments(
                                        arguments => arguments
                                            .Append("add")
                                            .AppendQuoted(keyName)
                                            .Append("/f")
                                            .AppendSwitchQuoted("/v", valueName)
                                            .AppendSwitchQuoted("/t", "REG_DWORD")
                                            .AppendSwitchQuoted("/d", valueData)
                                        );
int result = StartProcess(regPath, regSettings);
if (result == 0)
{
    Information("Registry value successfully set");
}
else
{
    Information("Failed to set registry value");
}

目前,还没有使用注册表的Cake别名。话虽如此,没有什么可以阻止您直接使用标准c#类型来操作注册表。

一个这样的方法的例子是:

在c#应用程序中写入注册表

Cake为更复杂的事情提供了许多别名,然而,记住别名中提供的几乎所有东西都可以在主脚本中直接使用c#完成。别名的存在只是为了方便。