C# 将注册表项从注册表项SZ转换为注册表项DWORD?

C# 将注册表项从注册表项SZ转换为注册表项DWORD?,c#,registry,C#,Registry,我继承了一个注册表项为“AutoLogOff”(以及许多类似项)的应用程序,作为REG_SZ类型,但它只有“0”或“1”的值。这将是更符合逻辑的数字(即一个DWORD)。是否有一种简单的方法将现有的REG_SZ条目转换为REG_DWORD(更改类型) 我想我可以检测“从旧版本升级”,提取REG_SZ值并删除现有注册表项,然后重新创建具有相同名称但为REG_DWORD类型的注册表项……但似乎有更简单的方法。在这里使用C#,尽管这是我感兴趣的原则。没有“简单的方法”,它需要删除值并将其添加回 这并不

我继承了一个注册表项为“AutoLogOff”(以及许多类似项)的应用程序,作为REG_SZ类型,但它只有“0”或“1”的值。这将是更符合逻辑的数字(即一个DWORD)。是否有一种简单的方法将现有的REG_SZ条目转换为REG_DWORD(更改类型)

我想我可以检测“从旧版本升级”,提取REG_SZ值并删除现有注册表项,然后重新创建具有相同名称但为REG_DWORD类型的注册表项……但似乎有更简单的方法。在这里使用C#,尽管这是我感兴趣的原则。

没有“简单的方法”,它需要删除值并将其添加回


这并不是一个好主意,如果用户出于任何原因恢复旧版本的应用程序(发生的次数比你想象的要多),那么旧版本很可能会出现错误,而不仅仅是硬崩溃。因此,不要试图更改类型,只需使用另一个名称的值即可。比如“AutoLogOff2”。最终,旧名称的机器将消失。创造新价值的努力在其他方面是相同的。恶心系数很高。

好的,这是合理的。我明白你说的可能降级是什么意思。如果条目更改为DWORD(通过删除然后重新创建),则在安装较旧的应用程序时,它将尝试将“AutoLogOff”读取为REG_SZ…较旧的应用程序可能会也可能不会优雅地处理!