码迷,mamicode.com
首页 > 其他好文 > 详细

C# 设置开机自动启动(注册表方式)

时间:2014-07-01 00:33:24      阅读:371      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   数据   os   io   

 

  .NET技术交流群 199281001 .欢迎加入。


1
//注册表辅助类 Author:BingBing 2 public static class Regedit 3 { 4 //自定义节点名称 5 public static string NodeName = "you app name"; 6 //SOFTWARE节点 7 public static string SoftWare = "SOFTWARE"; 8 9 /// <summary> 10 /// 读取指定名称的注册表的值 11 /// </summary> 12 /// <param name="key">注册表值的key</param> 13 /// <returns></returns> 14 public static string GetValue(string key) 15 { 16 17 using (var aimdir = Load(SoftWare)) 18 { 19 using (var child = aimdir.OpenSubKey(NodeName)) 20 { 21 if (child == null) return null; 22 var registData = child.GetValue(key).ToString(); 23 return registData; 24 } 25 } 26 } 27 28 /// <summary> 29 /// 注册表中写数据 30 /// </summary> 31 /// <param name="key">注册表值的key</param> 32 /// <param name="tovalue"></param> 33 public static void AddValue(string key, string value) 34 { 35 using (var aimdir = Load(SoftWare)) 36 { 37 using (var child = aimdir.OpenSubKey(NodeName, true)) 38 { 39 if (child == null) return; 40 if (ExistsValue(key, NodeName)) return; 41 child.SetValue(key, value); 42 } 43 } 44 } 45 46 /// <summary> 47 /// 删除注册表中指定的注册表项 48 /// </summary> 49 /// <param name="key">注册表值中的键</param> 50 public static void DeleteValue(string key) 51 { 52 using (var aimdir = Load(SoftWare)) 53 { 54 if (!ExistsValue(key, NodeName)) return; 55 using (var child = aimdir.OpenSubKey(NodeName, true)) 56 { 57 if (child != null) 58 { 59 child.DeleteValue(key); 60 61 } 62 } 63 } 64 } 65 66 /// <summary> 67 /// Load 68 /// </summary> 69 /// <returns></returns> 70 public static RegistryKey Load(string rootName) 71 { 72 var software = Registry.CurrentUser; 73 return software.OpenSubKey(rootName, RegistryKeyPermissionCheck.ReadWriteSubTree, System.Security.AccessControl.RegistryRights.FullControl); 74 75 } 76 77 /// <summary> 78 /// 判断指定注册表项是否存在 79 /// </summary> 80 /// <param name="nodeName">注册表左侧节点名称</param> 81 /// <returns></returns> 82 public static bool Exists(string nodeName) 83 { 84 var exit = false; 85 using (var aimdir = Load(SoftWare)) 86 { 87 var subkeyNames = aimdir.GetSubKeyNames(); 88 if (subkeyNames.Any(keyName => keyName == nodeName)) 89 { 90 exit = true; 91 } 92 93 } 94 95 return exit; 96 } 97 98 /// <summary> 99 /// 判断指定注册表项是否存在 100 /// </summary> 101 /// <param name="nodeName">注册表左侧节点</param> 102 /// <param name="rootName">父节点名称</param> 103 /// <returns></returns> 104 public static bool ExistsValue(string key, string rootName) 105 { 106 var exit = false; 107 using (var aimdir = Load(SoftWare)) 108 { 109 using (var child = aimdir.OpenSubKey(NodeName, true)) 110 { 111 if (child == null) return exit; 112 var subkeyNames = child.GetValueNames(); 113 if (subkeyNames.Any(keyName => keyName == key)) 114 { 115 exit = true; 116 } 117 } 118 } 119 120 return exit; 121 } 122 123 /// <summary> 124 /// 创建 125 /// </summary> 126 /// <param name="name">左侧节点名称</param> 127 public static void Create(string nodeName) 128 { 129 using (var software = Load(SoftWare)) 130 { 131 if (!Exists(nodeName)) 132 { 133 software.CreateSubKey(nodeName); 134 } 135 } 136 } 137 138 /// <summary> 139 /// 跟随windows一起启动 140 /// </summary> 141 /// <param name="path">要启动程序的绝对路径</param> 142 public static void AutoRun(string path) 143 { 144 using (var autorun = Load(SoftWare + @"\Microsoft\Windows\CurrentVersion\Run")) 145 { 146 autorun.SetValue(Guid.NewGuid().ToString(), path); 147 } 148 } 149 }

 

C# 设置开机自动启动(注册表方式),布布扣,bubuko.com

C# 设置开机自动启动(注册表方式)

标签:style   blog   color   数据   os   io   

原文地址:http://www.cnblogs.com/gaobing/p/3817200.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!