栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

C#进行注册表项和键值操作

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#进行注册表项和键值操作

前言

相信大家在安装西门子PLC软件的时候,都遇到过要手动删除注册表的情况。

注册表对于软件开发来说,可以用于存储一些关键信息,这样一般是不会被删除的,所以可以用它来做授权相关,,今天跟大家分享一下关于C#操作注册表的使用。

注册表

系统注册表里包含了大量的系统和软件安装信息,所以如果想要对注册表进行操作,必须要先了解它,否则,可能会导致一些意想不到的问题,那就得不偿失了。

1、我们可以通过CMD,输入Regedit,打开注册表。

2、注册表有几个关键节点,也叫根分支,分别是:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USERS、HKEY_CURRENT_CONFIG,每个节点用于存储不同的信息。

3、展开之后,每个文件夹图标表示的是注册表项。

 

4、每个注册表项对应的数据,叫做键值对。

C#操作注册表项

C#操作注册表,首先需要引用命名空间Microsoft.Win32,然后通过操作该命名空间下的RegistryKey对象。

using Microsoft.Win32;

1、使用C#打开注册表项:打开注册表里的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersion",true);

OpenSubKey方法后面还有一个bool类型的值true,这个代表可写入操作。

2、使用C#创建注册表项:在HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersion下创建一个名字叫Thinger的项。

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.CreateSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersionThinger");

3、使用C#删除注册表项:删除注册表中的SOFTWAREMicrosoftWindows NTCurrentVersionThinger项。

RegistryKey key = Registry.LocalMachine;
key.DeleteSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersionThinger",true);
C#操作注册表键值

不管是创建、获取、删除键值,首先都需要打开要创建或设置键值对应的注册表项

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey(@"SOFTWAREMicrosoftWindows NTCurrentVersion",true); 

1、创建注册表键值:在上面的注册表项中,增加一个键值,键名为"Thinger",值为"www.dotnetswj.com"。

software.SetValue("Thinger","www.dotnetswj.com");

SetValue()方法有三个参数,SetValue(键名,键值,键值类型),键值类型有字符串,二进制,Dword等,不设置键值类型时默认为字符串类型。如果注册表中已存在该键值,执行操作后,会覆盖该键值。

2、获取注册表键值:获取Thinger对应的值。

string GetValue = software.GetValue("Thinger").ToString();

3、删除注册表键值:删除Thinger对应的键值。

software.DeleteValue("Thinger");

注册删除键值前要保证删除的键值名称须存在,否则抛出异常。

最后注意,每次使用完成后,要把使用的RegistryKey对象关闭掉。

     key.Close();
     software.Close();
应用

最后做个应用,写个程序自动删除西门子的那个注册表,这样就不需要每次去注册表里删除了。

首先要打开注册表项,再删除注册表键值。

     RegistryKey key = Registry.LocalMachine;

     //打开注册表项
     RegistryKey software = key.OpenSubKey("SYSTEM\CurrentControlSet\Control\Session Manager", true);

     //删除键值
     software.DeleteValue("PendingFileRenameOperations", true);

     key.Close();
     software.Close();

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023622.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号