快捷导航

网游分类软件分类

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

2015年9月11日 来源:网络

今天艾薇百科继续给大家介绍关于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("注册表键值不存在!");


}


 

相关游戏

相关文章

热门手游推荐