亦是美网络

致力于操作系统应用与计算机网络技术的IT网站。

手把手教你C#.NET如何判断注册表项或键、键值是否存在

今天亦是美网络小编继续给大家介绍关于C#.NET编程相关的内容,还是那句话,如果你对编程不感兴趣,可直接忽略本文或查看本站提供的其他计算机方面的教程,OK,昨天给大家介绍了C#操作注册表的相关内容,包括创建、修改、删除注册表的项和键值,但是在操作的过程中,有时候我们需要先判断注册表里的项或键、键值是否存在,然后才能进行下一步的操作,那么C#.NET是如何判断注册表里的项或键、键值是否存在的呢?

注册表结构:根支、项/子项、键、键值。

引用命名空间:using Microsoft.Win32;

C#如何判断注册表里的项或键是否存在

以注册表里的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion为例,我们判断一下在CurrentVersion下是否存在Drivers32项以及在CurrentVersion下是否存在SystemRoot键。

首先判断是否存在注册表项CurrentVersion

RegistryKey subKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");

string[] keyNames = subKey.GetSubKeyNames();

subKey.Close();

bool result = false;

foreach (string keyName in keyNames)

{

if (keyName == "Drivers32")

{

result = true;

break;

}

else

{

result = false;

}

}

if (result == true)

{

MessageBox.Show("注册表项存在!");

}

else

{

MessageBox.Show("注册表项不存在!");

}

其次判断一下注册表中是否存在该键SystemRoot 

RegistryKey subKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows NT\CurrentVersion");

string[] keyValueNames = subKey.GetValueNames();

subKey.Close();

bool result = false;

foreach (string keyValueName in keyValueNames)

{

if (keyValueName == "SystemRoot")

{

result = true;

break;

}

else

{

result = false;

}

}

if (result == true)

{

MessageBox.Show("注册表键存在!");

}

else

{

MessageBox.Show("注册表键不存在!");

}

C#如何判断注册表里的键值是否存在

以下例子为判断SystemRoot键是否存在键值:

Object obj = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion","SystemRoot",null);

if (obj != null)

{

MessageBox.Show("注册表键值存在!");

}

else

{

MessageBox.Show("注册表键值不存在!");

}

捐助支持本站     站长QQ:1580005208     官方QQ群:589766974(点击即可加入)

上一篇:详解如何使用C#.NET进行注册表项和键值的创建、删除、修改、获取等操作
下一篇:图文详解彻底关闭windows10系统里的小娜(Cortana)语音服务

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

亦是美网络,成立于2012年12月5日,是一个致力于操作系统应用与计算机网络技术的综合IT网站,为大家不断提供和推荐有用的网络教程与技术。

本站文章归 亦是美网络 www.yishimei.cn版权所有 豫ICP备12013471号-4 网站地图