一web方式
- /// <summary>
- /// 注册表的读取
- /// </summary>
- /// <returns></returns>
- public void ReadRegedit()
- {
- RegistryKey rk = Registry.CurrentUser;
- RegistryKey softWare = rk.OpenSubKey("Software");
- RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
- RegistryKey windows = microsoft.OpenSubKey("Windows");
- RegistryKey current = windows.OpenSubKey("CurrentVersion");
- RegistryKey explorer = current.OpenSubKey("Explorer");
- RegistryKey shell = explorer.OpenSubKey(@"Shell Folders");
- foreach (string b in shell.GetValueNames())//这里用shell.GetValueNames()不是shell.GetSubKeyNames()
- {
- Response.Write( b+" "+ shell.GetValue(b).ToString());
- Response.Write("<br/>");
- }
- }
- /// <summary>
- /// 注册表的写入
- /// </summary>
- /// <returns></returns>
- public bool WriteRegedit()
- {
- try
- {
- RegistryKey rk = Registry.CurrentUser;
- RegistryKey softWare = rk.OpenSubKey("Software");
- RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
- RegistryKey windows = microsoft.OpenSubKey("Windows");
- RegistryKey current = windows.OpenSubKey("CurrentVersion");
- RegistryKey explorer = current.OpenSubKey("Explorer");
- RegistryKey shell = explorer.OpenSubKey(@"Shell Folders", true);//这里必须加true就是得到写入权限
- RegistryKey key = shell.CreateSubKey("swort");//创建swort目录
- key.SetValue("swort", "test");
- //在swort目录下建立写入swort test
- Response.Write("写入成功!!!!!!!!!");
- return true;
- }
- catch
- {
- return false;
- }
- }
- /// <summary>
- /// 注册表的删除
- /// </summary>
- /// <returns></returns>
- public bool DeleteRegedit()
- {
- try
- {
- RegistryKey rk = Registry.CurrentUser;
- RegistryKey softWare = rk.OpenSubKey("Software");
- RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
- RegistryKey windows = microsoft.OpenSubKey("Windows");
- RegistryKey current = windows.OpenSubKey("CurrentVersion");
- RegistryKey explorer = current.OpenSubKey("Explorer");
- RegistryKey shell = explorer.OpenSubKey(@"Shell Folders",true);
- RegistryKey swort = shell.OpenSubKey("swort",true);//这里必须加true就是得到写入权限
- swort.DeleteValue("swort");//删除swort的值 这个连键值一起删除了 剩下一个
- shell.DeleteSubKey("swort",false);//删除swort这个目录 要删除这个目录 必须具有权限
- Response.Write("删除成功!!!!!!!!!");
- return true;
- }
- catch
- {
- return false;
- }
- return true;
- }
- /// <summary>
- /// 查询某个键值是否存在
- /// </summary>
- /// <returns></returns>
- public bool ExistsRegedit()
- {
- RegistryKey rk = Registry.CurrentUser;
- RegistryKey softWare = rk.OpenSubKey("Software");
- RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
- RegistryKey windows = microsoft.OpenSubKey("Windows");
- RegistryKey current = windows.OpenSubKey("CurrentVersion");
- RegistryKey explorer = current.OpenSubKey("Explorer");
- RegistryKey shell = explorer.OpenSubKey(@"Shell Folders");
- if (shell.SubKeyCount != 0)
- {
- RegistryKey swort = shell.OpenSubKey("swort");
- foreach (string b in swort.GetValueNames())
- {
- if (b == "swort")
- {
- Response.Write("存在这个键!");
- return true;
- }
- }
- Response.Write("不存在这个键!");
- return false;
- }
- else
- { Response.Write("不存在这个键!");
- return false;
- }
- }
二:Form方式
private string GetRegistData(string name)
{
string registData;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.OpenSubKey("MyTest",true);
//RegistryKey aimdir1 = aimdir.OpenSubKey("Coop", true);
registData = aimdir.GetValue(name).ToString();
return registData;
}
//以上是读取的注册表中HKEY_LOCAL_MACHINE/SOFTWARE目录下的XXX目录中名称为name的注册表值;
//2.向注册表中写数据
private void WTRegedit(string name,string tovalue)
{
RegistryKey hklm = Registry.LocalMachine;
RegistryKey software = hklm.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.CreateSubKey("MyTest");
aimdir.SetValue(name,tovalue);
}
//以上是在注册表中HKEY_LOCAL_MACHINE/SOFTWARE目录下新建XXX目录并在此目录下创建名称为name值为tovalue的注册表项;
//aimdir.SetValue(abc,384,RegistryValueKind.DWord); 写双字节型
//3.删除注册表中指定的注册表项
private void DeleteRegist(string name)
{
string[] aimnames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.OpenSubKey("MyTest",true);
aimnames = aimdir.GetSubKeyNames();
foreach(string aimKey in aimnames)
{
if(aimKey == name)
aimdir.DeleteSubKeyTree(name);
}
}
//以上是在注册表中HKEY_LOCAL_MACHINE/SOFTWARE目录下XXX目录中删除名称为name注册表项;
//4.判断指定注册表项是否存在
private bool IsRegeditExit(string name)
{
bool _exit = false;
string[] subkeyNames;
RegistryKey hkml = Registry.LocalMachine;
RegistryKey software = hkml.OpenSubKey("SOFTWARE",true);
RegistryKey aimdir = software.OpenSubKey("MyTest",true);
subkeyNames = aimdir.GetSubKeyNames();
foreach(string keyName in subkeyNames)
{
if(keyName == name)
{
_exit = true;
return _exit;
}
}
return _exit;
}