C#窗体程序开机启动的问题
2016-12-07 17:28
393 查看
功能:窗体程序(exe)开机启动
实现:
问题出现:开机并未启动!!!!!!!!!
后面打开注册表发现并没有写入到自己想要的注册表位置上
搜索了一下(我的程序名称为: WindowsForms.exe)发现在其他地方出现了
很奇怪,中间多了一个路径(Wow6432Node)。原来Wow6432Node是64位的操作系统用来放置安装32位软件的注册表信息,然后这里就又有个疑问,VS2013难道还分64位或者32位?百度了下,vs开发环境原来是没有64或者32之分的,但是编译器确实是有32和64位之分的。
最终解决方案:项目=>右键属性=>生成 ,去掉首选32位打勾
据说这个注册表问题时跟操作系统有关系,楼主没有亲身试过,XP系统之前的系统是没有这目录的注册表的,WIN7和WIN8才有这个路径。
到处问题就解决了!楼主菜鸟一枚,有说错的地方请谅解!
实现:
public void SetAutoRun(string fileName, bool isAutoRun) { RegistryKey reg = null; try { if (!System.IO.File.Exists(fileName)) throw new Exception("该文件不存在!"); String name = fileName.Substring(fileName.LastIndexOf(@"\") + 1); reg = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run", true); if (reg == null) reg = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); if (isAutoRun) reg.SetValue(name, fileName); else reg.DeleteValue(name, false); } catch(Exception ex) { throw new Exception(ex.ToString()); } finally { if (reg != null) reg.Close(); } } private void checkBox1_CheckedChanged(object sender, EventArgs e) { if(checkBox1.Checked) { SetAutoRun(@"D:\WindowsForms.exe", true); //设置自动启动当前程序 } else { SetAutoRun(@"D:\WindowsForms.exe", false); //取消自动启动 } }
问题出现:开机并未启动!!!!!!!!!
后面打开注册表发现并没有写入到自己想要的注册表位置上
搜索了一下(我的程序名称为: WindowsForms.exe)发现在其他地方出现了
很奇怪,中间多了一个路径(Wow6432Node)。原来Wow6432Node是64位的操作系统用来放置安装32位软件的注册表信息,然后这里就又有个疑问,VS2013难道还分64位或者32位?百度了下,vs开发环境原来是没有64或者32之分的,但是编译器确实是有32和64位之分的。
最终解决方案:项目=>右键属性=>生成 ,去掉首选32位打勾
据说这个注册表问题时跟操作系统有关系,楼主没有亲身试过,XP系统之前的系统是没有这目录的注册表的,WIN7和WIN8才有这个路径。
到处问题就解决了!楼主菜鸟一枚,有说错的地方请谅解!
相关文章推荐
- c#调用COM组件
- 用注册表文件实现解开被锁定的.reg与inf文件
- 注册表导出管理员密码文件
- 修改注册表实现在桌面上显示Windows版本
- 用注册表清除3389登陆记录的方法
- 常见的注册表修改大全第1/3页
- vbscript 注册表脚本书写
- C#实现把指定数据写入串口
- C#动态创建button的方法
- vbscript Registry 注册表操作实现代码(读写删除)
- C#使用第三方组件生成二维码汇总
- C#中抽象方法与虚拟方法的区别
- c#中虚函数的相关使用方法
- C#实现给图片加水印的方法
- vbs 注册表操作代码(添加删除)
- C#使用加边法计算行列式的值
- C#实现多线程的同步方法实例分析
- C#中尾递归的使用、优化及编译器优化
- C#中的delegate委托类型基本学习教程
- C#实现子窗体与父窗体通信方法实例总结