首页 新闻 会员 周边 捐助

C#——编写一个设置开机自动启动应用程序,出现错误。

0
[已解决问题] 解决于 2012-08-12 23:00
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图:

下面是出错的原因:

 

以上就是本人的问题,求帮助。

新生帝的主页 新生帝 | 菜鸟二级 | 园豆:208
提问于:2012-08-05 04:37
< >
分享
最佳答案
0

            RegistryKey rk = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
            rk.SetValue("开机启动", txtPath.Text);
            rk.Close();
    

奖励园豆:5
花开花又落 | 菜鸟二级 |园豆:357 | 2012-08-10 13:47

嗯嗯,解决了。谢谢你。

新生帝 | 园豆:208 (菜鸟二级) | 2012-08-10 16:39
其他回答(3)
0
rk 这个是null 啊,没有取到值。

参看以下这个:
http://wenku.baidu.com/view/bd9014d5b9f3f90f76c61b95.html
chenping2008 | 园豆:9836 (大侠五级) | 2012-08-05 09:49

呵呵,我要的是帮我修改,指点,而不是一大堆引用。

支持(0) 反对(0) 新生帝 | 园豆:208 (菜鸟二级) | 2012-08-05 23:54
0

看下rk的值

Tom.汤 | 园豆:3058 (老鸟四级) | 2012-08-05 09:58
0

打开注册表,找到对应的键的位置,看看键值对不对。。。。。。。。。。。

Angkor--:-- | 园豆:1086 (小虾三级) | 2012-08-05 17:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册