开机启动

简介: 开机启动

原理

实现

编写 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
目录
相关文章
|
3月前
|
安全 网络协议 关系型数据库
firewalld 详细介绍配置(一)
【8月更文挑战第10天】FirewallD是一款动态防火墙管理工具,通过网络区域(zone)定义接口的安全级别。与iptables需重载全部规则相比,FirewallD仅更新变动部分,更高效。它利用iptables作为规则管理入口,自身不具防火墙功能,依赖内核的netfilter实现。区域(zone)代表一组过滤规则,不同区域默认行为各异,如public、work等。服务配置则以人性化名称管理端口,简化规则管理。常用命令包括安装、启动、停止及查询状态等。
55 4
|
3月前
|
网络协议 数据可视化 网络安全
firewalld 详细介绍配置(二)
【8月更文挑战第10天】配置`firewalld`涉及安装、启动与管理防火墙规则。首先通过`yum install firewalld`安装,然后使用`systemctl`命令进行启动、停止及禁用服务。`firewall-cmd`命令用于管理防火墙状态、查看版本与帮助信息、设置默认区域及接口所属区域。可通过添加或移除端口和服务来控制网络流量,并利用丰富规则进行更细粒度的控制。此外,`firewalld`支持动态规则更新,无需重启服务即可生效。可以通过配置文件持久化规则设置,适用于长期维护场景。
52 3
|
5月前
|
Unix Linux
# chkconfig: 2345 40 60 是什么
【6月更文挑战第10天】# chkconfig: 2345 40 60 是什么
31 5
|
Linux
一文让你掌握Chkconfig命令的使用
一文让你掌握Chkconfig命令的使用
添加开机启动脚本
添加开机启动脚本
127 0
|
关系型数据库 MySQL Linux
Linux服务开机自启动设置
Linux中也有类似于Window中的开机自启动服务,主要是通过chkconfig命令来设置。它主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
2577 0
|
网络协议 网络安全
firewalld的配置和使用
1、firewalld的基本使用 启动: systemctl start firewalld查看状态: systemctl status firewalld 停止: systemctl disable firewalld禁用: systemctl stop firewalld 2.
1571 0
|
JavaScript 前端开发 Shell
|
JavaScript 前端开发 Shell