锁定老帖子 主题:C#操作注册表全攻略
精华帖 (0) :: 良好帖 (0) :: 新手帖 (7) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-25
相信每个人对注册表并不陌生,在运行里面输入“regedit”就可以打开注册表编辑器了。这东西对Windows系统来说可是比较重要的,也是病毒常常会光顾的地方,比如病毒和恶意软件常常会在注册表的启动项里面写入自己的启动键值来达到自启动的目的,有些病毒还会修改注册表里面来映像劫持杀毒软件,这是破坏系统的第一步。同时,大多软件(软件的序列号和信息)和硬件信息、系统信息、安全模式等等设置都保存在这里,因此系统的健康在很大程度上要依赖注册表的健康。 using Microsoft.Win32; RegistryKey key = Registry.LocalMachine; RegistryKey software = key.CreateSubKey("software\\test"); //在HKEY_LOCAL_MACHINE\SOFTWARE下新建名为test的注册表项。如果已经存在则不影响! RegistryKey key = Registry.LocalMachine; RegistryKey software = key.OpenSubKey("software\\test",true); //注意该方法后面还可以有一个布尔型的参数,true表示可以写入。 RegistryKey key = Registry.LocalMachine; key.DeleteSubKey("software\\test",true); //该方法无返回值,直接调用即可 key.Close(); RegistryKey key = Registry.LocalMachine; RegistryKey software = key.OpenSubKey("software\\test",true); //该项必须已存在 software.SetValue("test", "coolszy"); //在HKEY_LOCAL_MACHINE\SOFTWARE\test下创建一个名为“test”,值为“coolszy”的键值。如果该键值原本已经存在,则会修改替换原来的键值,如果不存在则是创建该键值。 string info = ""; RegistryKey Key; Key = Registry.LocalMachine; myreg = Key.OpenSubKey("software\\test"); // myreg = Key.OpenSubKey("software\\test",true); info = myreg.GetValue("test").ToString(); myreg.Close(); RegistryKey delKey = Registry.LocalMachine.OpenSubKey("Software\\test", true); delKey.DeleteValue("test"); delKey.Close(); private bool IsRegeditItemExist() { string[] subkeyNames; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE"); //RegistryKey software = hkml.OpenSubKey("SOFTWARE", true); subkeyNames = software.GetSubKeyNames(); //取得该项下所有子项的名称的序列,并传递给预定的数组中 foreach (string keyName in subkeyNames) //遍历整个数组 { if (keyName == "test") //判断子项的名称 { hkml.Close(); return true; } } hkml.Close(); return false; } private bool IsRegeditKeyExit() { string[] subkeyNames; RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE\\test"); //RegistryKey software = hkml.OpenSubKey("SOFTWARE\\test", true); subkeyNames = software.GetValueNames(); //取得该项下所有键值的名称的序列,并传递给预定的数组中 foreach (string keyName in subkeyNames) { if (keyName == "test") //判断键值的名称 { hkml.Close(); return true; } } hkml.Close(); return false; } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 5631 次