Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)qqpublished in(发表于) 2014/7/11 9:27:46 C#教程:操作注册表
C#教程:操作注册表
操作注册表通过操作注册表可以很快捷、方便地解决问题,下面模仿“注册表编辑器”列出系统信息,运行结果如图1所示。通过RegistryKey类的GetSubKeyNames方法读取子键信息列表,实现将5大根键的子键信息读取出来,放在TreeView控件中,程序代码如下:private void Banding(){this.TVRegedit.Nodes.Clear();RegistryKey rkRoot=Registry.ClassesRoot;RegistryKey rkUse= Registry.CurrentUser;RegistryKey rkMachine=Registry.LocalMachine;RegistryKey rkUsers = Registry.Users;RegistryKey rkConfig= Registry.CurrentConfig;TreeNode tRoot = new TreeNode("HKEY_CLASSES_ROOT");foreach (string si in rkRoot.GetSubKeyNames()){tRoot.Nodes.Add(si.ToString());}TreeNode tUse = new TreeNode("HKEY_CURRENT_USER");foreach (string si in rkUse.GetSubKeyNames()){tUse.Nodes.Add(si.ToString());}TreeNode tMachine = new TreeNode("HKEY_LOCAL_MACHINE");foreach (string si in rkMachine.GetSubKeyNames()){tMachine.Nodes.Add(si.ToString());}TreeNode tUsers = new TreeNode("HKEY_USERS");foreach (string si in rkUsers.GetSubKeyNames()){tUsers.Nodes.Add(si.ToString());}TreeNode tConfig = new TreeNode("HKEY_CURRENT_CONFIG");foreach (string si in rkConfig.GetSubKeyNames()){tConfig.Nodes.Add(si.ToString());}this.TVRegedit.Nodes.Add(tRoot);this.TVRegedit.Nodes.Add(tUse);this.TVRegedit.Nodes.Add(tMachine);this.TVRegedit.Nodes.Add(tUsers);this.TVRegedit.Nodes.Add(tConfig);}通过Registry 类的SetValue方法,完成创建子键并为子键创建键值项以及设置键值。代码如下:private void button1_Click(object sender, EventArgs e){//设默认值stringkeyName=this.label2.Text.Trim().ToString()+""+this.textBox1.Text.Trim().ToString();object obj=(object)this.textBox2.Text.Trim();string strName = this.textBox3.Text.Trim().ToString();if (strReader != string.Empty){switch (strReader){case "one":{Registry.SetValue(keyName, strName, obj,RegistryValueKind.String);break;}case "four":{Registry.SetValue(keyName, strName, obj,RegistryValueKind.ExpandString);break;}}this.Banding();}else{MessageBox.Show("请选择创建方式(例如,字符串型)");}}通过RegistryKey类的GetValue方法,实现键值项与键值的读取。本示例中,在读键值时只取出其中一个值。代码如下:private void button5_Click(object sender, EventArgs e){string str = this.label2.Text.Trim().ToString();string defalutResut;if (str.IndexOf("") != -1){defalutResut = str.Substring(0, str.IndexOf(""));str = str.Substring(str.IndexOf("") + 1);}else{defalutResut = str;}switch (defalutResut){case "HKEY_CLASSES_ROOT":{rkey = Registry.ClassesRoot;break;}case "HKEY_CURRENT_USER":{rkey = Registry.CurrentUser;break;}case "HKEY_LOCAL_MACHINE":{rkey = Registry.LocalMachine;break;}case "HKEY_USERS":{rkey = Registry.Users;break;}case "HKEY_CURRENT_CONFIG":{rkey = Registry.CurrentConfig;break;}}try{RegistryKey rkeyS = rkey.OpenSubKey(str);if (rkeyS.ValueCount>0)
赞