如何使用 c# 将用户输入保存到注册表中?
Posted
技术标签:
【中文标题】如何使用 c# 将用户输入保存到注册表中?【英文标题】:how to save user input into registry using c#? 【发布时间】:2020-10-30 06:11:13 【问题描述】:尝试将用户输入保存到 Windows 注册表中,如下所示,但是 当我运行应用程序时,我看不到添加到注册表路径中的新值(位于“HKEY_CURRENT_USER\Software\...
实现的代码
double myValue = 0.01;
string key = "path";
myValue= value;
Registry.SetValue(key, "my Value",
value.ToString(System.Globalization.CultureInfo.InvariantCulture),
RegistryValueKind.String);
【问题讨论】:
【参考方案1】:您需要指定注册表项的完整路径,而不仅仅是相对于 HKEY_CURRENT_USER 的项。
所以,您的代码应该类似于:
const string userRoot = "HKEY_CURRENT_USER";
string key = "path";
Registry.SetValue(userRoot + "\\" + key, "my Value",
value.ToString(System.Globalization.CultureInfo.InvariantCulture),
RegistryValueKind.String);
但是,按照https://docs.microsoft.com/en-us/dotnet/api/microsoft.win32.registrykey?view=dotnet-plat-ext-3.1 的示例使用 RegistryKey 类可能会更简洁
【讨论】:
@user22387 试过什么? Martyn发布的代码或链接页面上使用的方法? @itsme86 两者,问题不在于与其他值一起使用的代码及其工作,而是注册表本身的问题,为什么它不使用新的更新进行更新? @user22387 你是说它在一些 Windows 更新之前就可以工作了吗?这是你第一次提到更新。 @itsme86 不知道你是什么意思?我提到问题不在于代码,而在于它自己没有添加的注册表( myValue ) @user22387 我的意思是你的“...为什么它#s 没有更新新的更新?”评论。确切的关键路径是什么?和WOW64有关系吗?它是 64 位应用程序吗?注册表本身存在实际问题的可能性约为 0%,因此您应该停止思考问题出在哪里。以上是关于如何使用 c# 将用户输入保存到注册表中?的主要内容,如果未能解决你的问题,请参考以下文章