开机启动

简介: 开机启动

原理

实现

编写 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
目录
相关文章
|
数据采集 机器学习/深度学习 编解码
图像超分实验:SRCNN/FSRCNN
【摘要】 图像超分即超分辨率,将图像从模糊的状态变清晰。本文对BSDS500数据集进行超分实验。
892 1
图像超分实验:SRCNN/FSRCNN
|
存储 对象存储 Windows
对象存储OSS快速上手——如何使用ossbrower2
对象存储OSS快速上手——如何使用ossbrower2
2233 1
对象存储OSS快速上手——如何使用ossbrower2
|
Web App开发 运维 网络协议
网络概述
7.1.1 计算机网络的产生和发展 2.计算机网络的发展历程 1)以数据通信为主的第一代计算机网络 2)以资源共享为主的第二代计算机网络 ARPA网的建成标志着计算机网络的发展进入了第二代,它也是Internet的前身 3)体系标准化的第三代计算机网络 国际标准化组织 (ISO) 提出的开放系统互连参考模型(OSI-RM)各层的协议被批准为国际标准,给网络的发展提供了一个可共同遵守的规则,从此计算机网络的发展走上了标准化的道路,因此我们把体系结构标准化的计算机网络称为第三代计算机网络 4)以Internet为核心的第四代计算机网络 目前这阶段计算机网络发展特点呈现为: 高速互连、智能
|
小程序 API 网络安全
小程序中的合法域名的作用及条件有哪些?
小程序中的合法域名的作用及条件有哪些?
1208 1
【鸿蒙4.0】ArkUI组件-Image
【鸿蒙4.0】ArkUI组件-Image应用及需要注意的问题
1365 3
|
算法 知识图谱
GCA:基于自适应数据增强的图对比学习
GCA:基于自适应数据增强的图对比学习
1163 0
GCA:基于自适应数据增强的图对比学习
|
传感器 算法 网络协议
一文搞懂PID控制算法
一文搞懂PID控制算法
一文搞懂PID控制算法
|
SQL 存储 关系型数据库
深入分析 Flink SQL 工作机制
本文首先会介绍推动这些优化背后的思考,展示统一的架构如何更好地处理流式和批式查询,其次将深入剖析 Flink SQL 的编译及优化过程。
深入分析 Flink SQL 工作机制
|
Java Maven
maven 使用国内代理
一直使用 maven默认仓库,maven 的下载速度一直不快不慢;最近换了网络,maven秒变蜗牛,换了阿里云的镜像,瞬间飞快。 配置文件 ${USER_HOME}/.m2/settings.xml: 设置阿里云镜像 alimaven aliyun maven http://maven.
8751 0
|
SQL 关系型数据库 MySQL
关于使用Navicat工具复制和导出MySQL数据库数据的一点尝试
本文记录了一次使用Navicat工具对MySQL数据库中的数据进行复制和导出的过程。通过操作时的图形界面和具体的操作步骤演示了在Navicat工具中如何对MySQL数据库数据进行复制和导出的过程。同时,记录了在使用Navicat工具对MySQL数据库中数据进行复制和导出过程中遇到的问题以及解决方法和注意步骤。通过这篇文章,可以学会使用Navicat工具对数据库数据进行复制和导出的操作。
899 0
关于使用Navicat工具复制和导出MySQL数据库数据的一点尝试

热门文章

最新文章