如何从 C# 应用程序创建注册表项

本文关键字:创建 注册表 应用程序 | 更新日期: 2023-09-27 17:59:08

我正在使用C#在.NET框架中开发Windows应用程序。在安装应用程序时,我想将某个值写入注册表。所以我有两个问题:

  1. 如何在安装时执行用于创建注册表项的代码,或者框架中有一些设置允许我们这样做?

  2. 我不想在注册表中创建新节点,我可以在注册表或现有节点的任何地方使用一些公共位置,我可以在其中存储我的值而不会影响本地系统设置?

请帮帮我。

谢谢

比布

如何从 C# 应用程序创建注册表项

您可以使用

Microsoft.Win32.Registry 类读取或写入 Windows 注册表。

http://msdn.microsoft.com/en-us/library/microsoft.win32.registry.aspx

将数据值放入现有注册表项被认为是不好的形式。 您应该创建一个由您的公司和/或应用程序名称标识的密钥路径,并将您的注册表内容放在那里。 这是对最终用户的礼貌,他们可能希望在从其系统中删除您的应用程序后删除您的所有应用程序。

惯例认为,您可能应该在Software节点下创建一个新节点。MSDN 上有很多关于创建注册表项的文档。

1(这里有一个关于如何从C#写入注册表的好教程:http://www.codeproject.com/KB/system/modifyregistry.aspx

2(您可以并且应该创建一个新密钥来存储您的设置,这样您就可以保证不会干扰其他人的设置。 通常,整个计算机的设置存储在 HKLM/Software/<your company>/<your application>/ 下,单个用户的注册表设置存储在 HKLU/Software/<your company>/<your application>/

创建一个新节点(在HKLM/Software/YourCompany/YourApp下(是这里正确的做法。

此外,写入注册表的正常问题是您需要具有管理员权限才能执行此操作。 但是,如果使用基于 msi 的安装程序,则必须具有管理员权限才能运行安装,并且安装将能够写入注册表。 只是不要打算稍后从您的应用中更改该条目,因为许多用户将无法这样做。

首先,由于您只是在安装过程中尝试写入注册表,因此可以修改 MSI 文件以包含注册表修改。 本文将对此有所帮助:

http://msdn.microsoft.com/en-us/library/bb458038.aspx

这样,您就不会为仅部署任务添加额外的 C# 代码。 如果要在安装后继续修改注册表,可以在 C# 中添加命令来执行此操作,但这似乎不是必需的。

至于在哪里安装此信息,我强烈建议您为此创建自己的节点。 这就是注册表的用途。 如果您开始在同一区域内混合来自两个或多个应用程序的信息,则会遇到麻烦。 只需按照注册表的约定创建自己的位置即可。