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

 

  .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# 设置开机自动启动(注册表方式)

时间: 2024-08-12 05:59:05

C# 设置开机自动启动(注册表方式)的相关文章

设置开机自动启动VMWARE

Workstation版也可以开机自启动的-以下是操作过程 1.所需的工具:instsrv.exe和srvany.exe 这两个工具在windows 2003 resource kit tools里面.我把这两个文件都存在D:\VMware里面 2.需要了解的信息 vmware.exe的安装路径,以本机为例:D:\VMware Workstation\vmware.exe  要启动的虚拟机配置文件路径,我的2003虚拟机的配置文件winNetEnterprise.vmx的路径是D:\VMware

原 Debian设置开机自动启动与关闭

发表于1年前(2013-01-08 13:01)   阅读(2380) | 评论(0) 2人收藏此文章, 我要收藏 赞0 开机自动启动 update-rc.d chkconfig 熟悉debian系统的应该经常会用到update-rc.d这个命令,它与redhat里的chkconfig 是相似的管理服务的工具,首先来看下这个命令的使用方法: ? 1 2 3 4 5 6 [email protected]:etc# update-rc.d --help usage: update-rc.d [-n

vm,vbox 虚拟机设置开机自动启动(创建虚拟机快捷方式的命令)

在使用vm虚拟机和vbox虚拟机设置开机自动启动时候, vbox可以直接发送桌面图标创建一个快捷方式(如图1),然后加到启动项里. 而vm没有发送到桌面快捷方式这一选项,那么可以通过手工添加一个快捷方式(如图2,图3)然后放到启动项里,方法如下: 右键桌面空白处新建>快捷方式>输入命令(包含引号) "C:\Program Files (x86)\VMware\VMware Workstation\vmware.exe" "-x" "D:\All

Tomcat设置开机自动启动

前提:Tomcat是免安装的,下载解压即可 设置开机自动启动: 第一步:win+R --> cmd 第二步:cd 到Tomcat的bin目录下 第三步:输入 service.bat install Tomcat , 然后回车 第四步:win+R --> services.msc 找到对应服务,设置开机自动启动

开机自动启动注册

开机自动启动注册,最终实现的效果如下: 1.电脑运行msconfig可以看到,我的电脑由于是win10的,win7可以在启动兰看到对应电脑开机需要启动的那些程序: 控制台程序如下: 程序如下: using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks; using System.Windows.Forms; using Microso

VMware虚拟机设置开机自动启动

本文源链接地址:https:www.93bok.com 前言 使用vmware虚拟机的时候,每天到公司,开始准备工作之前,都要先打开vmware workstion然后再开启虚拟机,总感觉有些麻烦,接下来我们设置一下,只要电脑开机,虚拟机就自动启动. 一.设置虚拟机共享 这个过程如果你的虚拟机快照比较多,比较大,可能会消耗些时间. 二.管理自动启动虚拟机 接下来就可以重启电脑验证是否有开机自动启动虚拟机了 原文地址:https://www.cnblogs.com/93bok/p/9684208.

Windows Server2008R2,ServerWin2012 R2设置自动登录注册表配置

serverWin2008 R2 2012自动登录一般是通过control userpasswords2 命令修改,其实注册表修改更简单. 复制以下保存为xx.reg文件导入即可即可. Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] "AutoAdminLogon"="1" "Def

nginx 设置开机自动启动脚本

Nginx 是一个很强大的高性能Web和反向代理服务器.虽然使用命令行可以对nginx进行各种操作,比如启动等,但是还是根据不太方便.下面介绍在Linux下安装后,如何设置开机自启动. 首先,在linux系统的/etc/init.d/目录下创建nginx文件,使用如下命令: vim /etc/init.d/nginx 在脚本中添加如下命令: #!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkcon

C#设置某程序开机自启动[修改注册表方式]

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using Microsoft.Win32; 7 using org.nipc.securityManager.client.UpdateModule; 8 9 namespace SettingAutoRun 10 { 11 class Pr