using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Microsoft.Win32; namespace 建立注册表编辑器 { public partial class RegistryEdit : Form { public RegistryEdit() { InitializeComponent(); } private void btnView_Click(object sender, EventArgs e) { this.listboxMsg.Items.Clear(); using (RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\ Windows\CurrentVersion\Run", false)) { //得到所有该项值得名称 string[] valueNames = rk.GetValueNames(); foreach (string it in valueNames) { this.listboxMsg.Items.Add(it + " " + rk.GetValue(it)); } rk.Close(); } } private void btnAdd_Click(object sender, EventArgs e) { using (RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\ Windows\CurrentVersion\Run", true)) { rk.SetValue("开机启动", txtPath.Text); rk.Close(); } } private void btnShutDown_Click(object sender, EventArgs e) { using (RegistryKey rk = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\ Windows\CurrentVersion\Run", true)) { //构造关机命令如:“C:\windows\system32\at 23:51 shutdown.exe -s”; string shutdown = @"C:\WINDOWS\system32\at " + txtTime.Text + " Shutdown.exe -s"; rk.SetValue("自动关机", shutdown); rk.Close(); } } } }
下面是程序的UI图:
下面是出错的原因:
以上就是本人的问题,求帮助。
RegistryKey rk = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
rk.SetValue("开机启动", txtPath.Text);
rk.Close();
嗯嗯,解决了。谢谢你。
rk 这个是null 啊,没有取到值。
参看以下这个:
http://wenku.baidu.com/view/bd9014d5b9f3f90f76c61b95.html
呵呵,我要的是帮我修改,指点,而不是一大堆引用。
看下rk的值
打开注册表,找到对应的键的位置,看看键值对不对。。。。。。。。。。。