开机启动

简介: 开机启动

原理

实现

编写 SystemHelper 帮助类,内容如下:

using Microsoft.Win32;
using System;
using System.Windows.Forms;
namespace Project.Helper
{
    public class SystemHelper
    {
        /// <summary>
        /// 注册用户信息
        /// </summary>
        public enum RegistryKeyEnum
        {
            /// <summary>
            /// 当前用户
            /// </summary>
            CurrentUser,
            /// <summary>
            /// 管理员
            /// </summary>
            LocalMachine,
            ClassesRoot,
            Users,
            PerformanceData,
            CurrentConfig
        }
        /// <summary>
        /// 程序开机启动方法
        /// </summary>
        /// <param name="strAppName">应用程序名称</param>
        /// <param name="isAutoRun">是否开机启动</param>
        /// <param name="registryKey">注册表注册到那个用户下,主要是当前用户与管理员的区别</param>
        public static void SetAutoRun(string strAppName, bool isAutoRun, RegistryKeyEnum registryKey = RegistryKeyEnum.CurrentUser)
        {
            try
            {
                RegistryKey reg = registryKey switch
                {
                    RegistryKeyEnum.CurrentUser => Registry.CurrentUser,
                    RegistryKeyEnum.LocalMachine => Registry.LocalMachine,
                    RegistryKeyEnum.ClassesRoot => Registry.ClassesRoot,
                    RegistryKeyEnum.Users => Registry.Users,
                    RegistryKeyEnum.PerformanceData => Registry.PerformanceData,
                    RegistryKeyEnum.CurrentConfig => Registry.CurrentConfig,
                    _ => throw new ArgumentException(message: "用户类型不合法")
                };
                RegistryKey run = reg.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run");
                if (isAutoRun)
                {
                    run.SetValue(strAppName, Application.ExecutablePath);
                }
                else
                {
                    run.DeleteValue(strAppName, false);
                }
                run.Close();
                reg.Close();
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message, ex);
            }
        }
    }
}点击复制复制失败已复制


使用

SystemHelper.SetAutoRun("JX-VCOM", true);  // 注册到普通用户下面
SystemHelper.SetAutoRun("JX-VCOM", true, S
目录
相关文章
|
XML Java 数据格式
深入理解Spring中的Resource资源管理
深入理解Spring中的Resource资源管理
366 0
|
SQL 开发框架 Java
互联网医院在线问诊系统的设计与实现(论文+源码)_kaic
互联网医院在线问诊系统的设计与实现(论文+源码)_kaic
|
Android开发 容器
Android UI设计: 什么是View和ViewGroup?
Android UI设计: 什么是View和ViewGroup?
632 0
|
存储 数据采集 Oracle
医疗(医院)数据中台建设方案
以广州某三甲医院数据中台建设目标为例
3774 0
|
存储 Ubuntu Linux
Docker容器简介、优缺点与安装
Docker容器简介、优缺点与安装
|
存储 供应链 安全
区块链技术防止交易被篡改的能力主要依赖于其独特的架构和机制
**区块链技术通过分布式存储、去中心化网络、哈希链接、共识机制及加密算法确保交易防篡改。每个区块含前块哈希,篡改将破坏链式结构;共识机制如PoW、PoS保证交易验证;智能合约增强安全性。多层防护保障数据完整性和安全性,支撑其在多个行业中的应用。**
|
Python
Python 设置环境变量方法
Python 设置环境变量方法
646 0
|
存储 对象存储 Windows
对象存储OSS快速上手——如何使用ossbrower2
对象存储OSS快速上手——如何使用ossbrower2
2096 1
对象存储OSS快速上手——如何使用ossbrower2
|
数据采集 机器学习/深度学习 编解码
图像超分实验:SRCNN/FSRCNN
【摘要】 图像超分即超分辨率,将图像从模糊的状态变清晰。本文对BSDS500数据集进行超分实验。
825 1
图像超分实验:SRCNN/FSRCNN
|
存储 人工智能 缓存
计算机架构:漫游CPU的奥秘世界(一)
计算机架构:漫游CPU的奥秘世界
719 0

热门文章

最新文章

下一篇
开通oss服务