Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published 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)

{

//设默认值

string

keyName=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)


If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759