前言

相信大家在安装西门子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_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion",true);

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

2、使用C#创建注册表项:在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion下创建一个名字叫Thinger的项。

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.CreateSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Thinger");

3、使用C#删除注册表项:删除注册表中的SOFTWARE\Microsoft\Windows NT\CurrentVersion\Thinger项。

RegistryKey key = Registry.LocalMachine;
key.DeleteSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Thinger",true);

C#操作注册表键值

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

RegistryKey key = Registry.LocalMachine;
RegistryKey software = key.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion",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();

C#进行注册表项和键值操作相关推荐

  1. windows7注册表项Userinit键值删除导致不能登录解决的简单办法

    1.登录系统选择命令行模式(另外两个是安全模式.正常模式),进入系统 2.此时系统是黑屏,四角都显示有"safe mode"字样,按Ctrl+Alt+Del打开任务管理器 3.在任 ...

  2. 用批处理读取特定注册表项的路径值

    用批处理命令查询注册表项的命令为 REG QUERY ... 具体的使用信息在命令行窗口中输入 REG QUERY /? 在这里我们需要查询一个具体的key-value,则使用下面的命令 REG QU ...

  3. Win10更改注册表win defend键值提示无法更改所有者

    环境: Win10 专业版 联想E14 问题描述: 想停止 win defend服务,停止不了,更改注册表键值,出现无法更改 解决方案: 1.安全模式下停止 win defend服务 2.进入注册表权 ...

  4. 服务器iis7.5 配置文件,使用注册表项 - Internet Information Services | Microsoft Docs

    Internet 信息服务使用的注册表项的说明 07/21/2020 本文内容 本文介绍了 Microsoft Internet Information Services (IIS) 在 Window ...

  5. # 删除注册表项键值_强制删除:让你的电脑上不再有“顽固”程序

    微信搜一搜麦克NO1对于很多用户来说,在日常使用电脑的时候,经常会有意无意的安装一些程序.而这些程序也是严重影响了电脑的运行速度.所以,在忍无可忍的情况下,需要将这些"顽固"程序卸 ...

  6. sql无法写入mysql_安装sql2008R2数据库时提示错误1406,安装程序无法将值写入注册表项?...

    摘要: 安装sql2008R2数据库时提示错误1406,安装程序无法将值写入注册表项 \software\classes\msolapadmin2.msolapsources.1.怎么解决呢? 这个问 ...

  7. 如何解决Office2016安装时提示:错误1406。安装程序无法将值写入注册表项\.xlsx

    写在这里的初衷,一是备忘,二是希望得到高人指点,三是希望能遇到志同道合的朋友. 目录 一.当前问题 二.解决办法 一.当前问题 Office2016安装时提示:错误1406.安装程序无法将值写入注册表 ...

  8. VMware 无法将值写入注册表项

    问题:VMware 无法将值写入注册表项......请与技术人员联系 解决:将360或其他的安全防护软件关闭,再重试.

  9. Win8 解决错误 1406。安装程序无法将值OSE.exe写入注册表项。无法保存对main权限所作的更改

    我的个人blog2018-9上线,地址:http://www.biegral.com 用了破Win8.装个Office2013都蛋疼. 下载了怎么安装都不对,感觉整理一个完美的解决方案. 安装错误1: ...

  10. Win11无法将值写入注册表项如何解决?

    近期有部分Win11用户在安装程序时,遇到了系统提示无法将值写入注册表项的情况,这是怎么回事呢?出现这一情况的原因很有可能是注册表被禁了,或者缺少注册表修改权限所致,对此我们可以试着更改组策略或者添加 ...

最新文章

  1. 华为、百度、小米踏上造车新征程,软件如何吞噬汽车?
  2. Kubernetes学习笔记一:Docker和Kubernetes的诞生
  3. rocketMq - commitLog
  4. java 网络序_Java使用网络字节序进行数据传输
  5. [BeiJing2010组队]次小生成树 Tree
  6. condition可数吗 living_单词辨析 知识讲解 condition situation state的区别
  7. 点开那些优秀的硕博士们的朋友圈,他们都有这些特点!
  8. [算法] 求排列组合: 从n个数中任选m个数组成一个新数
  9. spring cloud微服务_年后进大厂,必备这份微服务面试题:Dubbo+SpringBoot+Cloud
  10. 【OpenCV 例程200篇】68. 连续周期信号的傅立叶级数
  11. 用户空间文件系统(FUSE)
  12. Gradle Issue: OutOfMemoryError: PermGen space
  13. python语言单词接龙_[蓝桥杯][算法训练VIP]单词接龙 (C语言代码)
  14. 嵌入式系统Linux内核开发学习指导框图
  15. 怎么用EasyRecovery把文件夹中丢失的数据恢复
  16. 129.求根到叶子节点数字之和
  17. Android系统优化实操总结
  18. ChineseBERT: Chinese Pretraining Enhanced by Glyph and Pinyin Information
  19. 项目管理面试常见问题及答案
  20. 医学图像——医学坐标体系

热门文章

  1. 计算机病毒的命名规则
  2. gurobi和python_Gurobi Python建模环境使用介绍 第一部分准备 (v12最后更新2012
  3. 计算机设备没有音频,电脑找不到音频设备是怎么回事_电脑没有音频设备怎么处理...
  4. python-声音录制和处理
  5. 曾经用过的书生配置文档
  6. python qq空间登录_Python案例之QQ空间自动登录程序实现-阿里云开发者社区
  7. Eclipse使用Ant编译时报错Perhaps JAVA_HOME does not point to the JDK
  8. 好用的国产Linux深度操作系统Deepin 20.5发布
  9. ubuntu安装后的一些操作
  10. js实现跟浏览器 ctrl+f 一样的效果