C# winform程序,安装之后,如何实现电脑开机自动启动,
百度了,基本上都是一个答案,一样的代码,但是,说的都太简单了,还是不能理解。。
如下
第二种方法:
添加到注册表里直接用代码写到注册表里,也可以手动添加.
E:D:\\tractor.exe//可以是你的程序名和 完整路径就OK了.
也可以手动拖到启动里面....RegistryKey hklm = Application.LocalMachine;
RegistryKey run = hklm.CreateSubKey(@"SOFTWARE\Microsoft\Windows\Current\Version\Run");
try
{
    run.SetValue("tractor.exe","D:\\tractor.exe");
    MessageBox.Show("注册表添加成功!!","提示",MessageBoxButton.OK, MessageBoxIcon.Information);
    hklm.Close();
}catch(Exception ee)
{
    MessageBox.Show(my.Message.ToString(),"提示",MessageBoxButton.OK, MessageBoxIcon.Error);
}
 
我想知道,这段网上普遍传的代码。它应该放在程序的什么地方,放在构造函数里面?那样的话,每次程序运行都要执行?或者,我想问,写注册表,是怎么一个流程,什么时候做这件事情,是在程序里面,还是,生成安装项目的时候诶,找来找去,网上的答案永远都是上面的这些话,所以,下面的,就不要贴上面的那段代码了。看的都头晕。。

解决方案 »

  1.   

    在setup程序里写,不过没研究过
      

  2.   

    放在构造函数
    你可以加一段代码确认该注册表是否已存在
    不在再新增,当然每次加也无所谓
    注册表(Registry,繁体中文版Windows称之为登錄檔)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Windows 95开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今。
    windows启动所需要的参数,几乎都存在那
      

  3.   

    1、安装的时候运行一下,以后就可以了。
    2、看一下AutoRun.exe
    3、bat
    第一种就是网上的那种,网注册表里写的。
      

  4.   

    1.点"项目/添加新项/安装程序类"2.在代码编辑器里写        public override void Install(IDictionary stateSaver)
            {
                base.Install(stateSaver);
                //以下是你的写入注册表的代码
                RegistryKey hklm = Application.LocalMachine;
                RegistryKey run = hklm.CreateSubKey(@"SOFTWARE\Microsoft\Windows\Current\Version\Run");
                try
                {
                    run.SetValue("tractor.exe","D:\\tractor.exe");
                    MessageBox.Show("注册表添加成功!!","提示",MessageBoxButton.OK, MessageBoxIcon.Information);
                    hklm.Close();
                }
                catch(Exception ee)
                {
                    MessageBox.Show(my.Message.ToString(),"提示",MessageBoxButton.OK, MessageBoxIcon.Error);
                }        }
    3.在安装的时候,调用安装程序类.
      

  5.   

    老实说,还是没理解这里的第二句话,需要把一个类编译成DLL,然后再调用?
      

  6.   

    2.在代码编辑器里写
    C# code
            public override void Install(IDictionary stateSaver)
            {
                base.Install(stateSaver);
                //以下是你的写入注册表的代码
                RegistryKey hklm = Application.LocalMachine;
                RegistryKey run = hklm.CreateSubKey(@"SOFTWARE\Microsoft\Windows\Current\Version\Run");
                try
                {
                    run.SetValue("tractor.exe","D:\\tractor.exe");
                    MessageBox.Show("注册表添加成功!!","提示",MessageBoxButton.OK, MessageBoxIcon.Information);
                    hklm.Close();
                }
                catch(Exception ee)
                {
                    MessageBox.Show(my.Message.ToString(),"提示",MessageBoxButton.OK, MessageBoxIcon.Error);
                }        }中setValue函数能用相对路径吗