C#中如何设置软件开机自启动
📅 2026/7/14 23:21:08
👁️ 次浏览
以下是对提供的 C# 代码的详细说明和逐行注释。代码包含两个私有方法用于启用或禁用当前应用程序的 Windows 开机自启动功能。它们操作注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run因此需要管理员权限才能正常运行。SetThisAppAutoStartup() — 设置开机自启动privatevoidSetThisAppAutoStartup(){try{// 获取当前应用程序所在目录的完整路径并拼接可执行文件名 HikVision-SDK.exestringstrPathAndAppNameApplication.StartupPath\\HikVision-SDK.exe;// 检查该文件是否存在若不存在则直接返回避免无效注册表写入if(!File.Exists(strPathAndAppName))return;// 从完整路径中提取文件名例如 HikVision-SDK.exestringstrAppNamestrPathAndAppName.Substring(strPathAndAppName.LastIndexOf(\\)1);// 移除扩展名 .exe不区分大小写仅保留基本名称作为注册表项的名称strAppNamestrAppName.Replace(.exe,);strAppNamestrAppName.Replace(.EXE,);// 打开注册表路径HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run// 参数 true 表示需要写入权限RegistryKeyRKeyRegistry.LocalMachine.OpenSubKey(SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run,true);// 如果该子键不存在理论上通常存在则创建它if(RKeynull)RKeyRegistry.LocalMachine.CreateSubKey(SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run);// 在该子键下创建或更新一个值名称为应用程序名称不含扩展名值为完整的可执行文件路径// 这样系统在启动时会自动运行该程序RKey.SetValue(strAppName,strPathAndAppName);// 关闭注册表键释放资源RKey.Close();}catch{}// 空捕获忽略任何异常如权限不足、路径错误等}以下是优化后的代码privatevoidSetThisAppAutoStartup(){try{stringexePathApplication.ExecutablePath;if(!File.Exists(exePath))return;stringnamePath.GetFileNameWithoutExtension(exePath);using(varkeyRegistry.LocalMachine.OpenSubKey(SOFTWARE\Microsoft\Windows\CurrentVersion\Run,true)){key?.SetValue(name,exePath);}}catch(Exceptionex){/* 记录日志 */}}DelThisAppAutoStartup() — 删除开机自启动privatevoidDelThisAppAutoStartup(){try{// 获取当前正在运行的可执行文件的完整路径与 Set 方法中的路径可能不同但通常一致stringstrPathAndAppNameApplication.ExecutablePath;// 检查文件是否存在一般总是存在若不存在则返回if(!File.Exists(strPathAndAppName))return;// 从完整路径中提取文件名如 HikVision-SDK.exestringstrAppNamestrPathAndAppName.Substring(strPathAndAppName.LastIndexOf(\\)1);// 去掉扩展名获得用于注册表项的名称strAppNamestrAppName.Replace(.exe,);strAppNamestrAppName.Replace(.EXE,);// 打开注册表路径写入权限RegistryKeyRKeyRegistry.LocalMachine.OpenSubKey(SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run,true);// 如果子键不存在创建它但通常不会if(RKeynull)RKeyRegistry.LocalMachine.CreateSubKey(SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run);// 注意下面两行代码存在冗余和潜在错误// RKey.SetValue(strAppName, false); // 这行会设置一个名为 strAppName 的项值为 false类型为字符串但这不会删除自启动反而会写入错误数据// RKey.DeleteSubKey(strAppName, false); // 错误DeleteSubKey 用于删除子键而不是删除值。这里 strAppName 是值名称应使用 DeleteValue。// 正确的做法应该是RKey.DeleteValue(strAppName, false); 其中 false 表示不抛出异常如果值不存在// 上述代码意图是删除该值但实现有误。修正后的写法应为// try { RKey.DeleteValue(strAppName, false); } catch { }// 由于原代码有误以下注释说明实际执行情况// - SetValue 会写入一个错误的值非字符串类型为 String值为 False// - DeleteSubKey 会尝试删除名为 strAppName 的子键但该名称通常不是子键而是值因此会失败但被 catch 忽略// 结果该自启动项不会被正确删除。// 尽管如此代码依然关闭了注册表键RKey.Close();}catch{}// 忽略所有异常}以下是优化后的方法privatevoidDelThisAppAutoStartup(){try{stringexePathApplication.ExecutablePath;if(!File.Exists(exePath))return;stringnamePath.GetFileNameWithoutExtension(exePath);using(varkeyRegistry.LocalMachine.OpenSubKey(SOFTWARE\Microsoft\Windows\CurrentVersion\Run,true)){key?.DeleteValue(name,false);// false 表示值不存在时不抛出异常}}catch(Exceptionex){/* 记录日志 */}}
最近在电商运营中,很多天猫商家都面临一个共同痛点:店铺装修频繁更新耗时耗力,特别是大促期间需要快速调整页面布局、更换横幅、更新商品展示等操作。传统手动操作不仅效率低下,还容易出错。本文将分享如何利用影刀RPA实现天猫千牛…
📅 2026/7/14 23:20:07
1. 环境与路径检查:TensorBoard数据不显示的第一道防线当你兴冲冲地运行完训练脚本,输入tensorboard --logdirlogs后却发现浏览器一片空白,这种体验就像等待快递却收到空包裹。别急,我们先从最基础的环境与路径开始排查。1.1 路径…
📅 2026/7/14 23:20:07
在 Windows 系统长期使用过程中,C 盘空间不足是困扰许多用户的常见问题。系统更新残留、临时文件堆积、应用缓存膨胀等因素会迅速吞噬宝贵的磁盘空间,导致系统运行缓慢、软件安装失败甚至系统崩溃。手动清理不仅效率低下,还可能误删关键文件。…
📅 2026/7/14 23:20:07
更多请点击:
https://codechina.net
第一章:ChatGPT直播话术工程化落地全景图 ChatGPT直播话术工程化并非简单地将大模型输出粘贴进直播间,而是构建一套可复用、可监控、可迭代的端到端技术闭环。其核心在于将自然语言生成能力与实时直播场…
📅 2026/7/15 0:06:20
1. 2025年CSDN双轨货币体系全景解读作为国内最大的开发者社区之一,CSDN在2025年已经形成了完善的积分与C豆双轨制虚拟货币体系。这个体系就像开发者世界的"支付宝微信支付",两种货币各有侧重又相互补充。我作为从2015年就开始混迹CSDN的老用户…
📅 2026/7/15 0:06:20
1. 机票预订系统的业务需求拆解每次打开手机APP订机票时,后台其实在进行一场精密的数据交响乐。以某航空公司系统为例,旅行社需要录入旅客姓名、身份证号等基本信息,系统自动匹配航班、生成取票通知,最终完成出票。这个看似简单的…
📅 2026/7/15 0:06:20
1. 引言
随着大语言模型(LLM)能力的飞速提升,AI Agent(智能体)的概念正从理论走向实践。一个理想的 AI Agent 不仅能理解自然语言,更能自主地调用工具、访问数据、执行任务。然而,在实现这一愿景…
📅 2026/7/15 0:06:20
一、行星齿轮机构的组成
标准行星齿轮机构主要包括:
太阳轮;
行星轮;
内齿圈;
行星架。
太阳轮位于机构中心。
多个行星轮围绕太阳轮均匀布置,行星轮内侧与太阳轮外啮合,外侧与内齿圈内啮合。
行星轮通过轴…
📅 2026/7/15 0:05:20
更多请点击:
https://codechina.net
第一章:为什么你的ChatGPT分类总出错?揭秘训练数据噪声、标签漂移与领域适配失效三大致命盲区 当你精心设计提示词、微调模型参数,却仍反复遭遇分类结果混乱——例如将“退款申请”误判为“产…
📅 2026/7/15 0:05:20
1. COM线程模型基础与CoInitializeEx核心作用在Windows平台开发中,组件对象模型(COM)的线程处理机制一直是开发者必须掌握的底层知识。作为COM初始化的门户函数,CoInitializeEx不仅决定了对象在何种线程环境下运行,更影响着整个组件的并发性能…
📅 2026/7/15 0:00:17
1. 为什么M芯片Mac用户需要降级到Monterey? 去年刚拿到M2芯片的MacBook Pro时,我第一时间升级到了Ventura系统。结果第三天就遇到了微信闪退、Final Cut Pro渲染卡顿的问题。后来在开发者论坛发现,不少专业软件对Ventura的适配都存在问题。这…
📅 2026/7/15 0:00:17
1. 背景与核心概念在AI大模型快速发展的今天,许多开发者和研究者都面临一个现实问题:如何在有限的硬件预算下实现高效的本地大模型部署。特别是对于个人开发者和小型团队来说,购买最新的高端显卡成本高昂,而利用现有的或二手硬件资…
📅 2026/7/15 0:00:17
豆包openclaw最近圈子里都在聊豆包openclaw,我也没忍住,掏腰包入手了一套。说实话,刚拿到手的时候,心里是打鼓的。毕竟市面上类似的智能硬件太多了,有的吹得天花乱坠,用起来却是一堆bug。为了不让大家的钱打水漂,我连续用了半个月。从开箱到日常高频使用,甚至故意测试它…
📅 2026/7/14 6:35:02
SQLyog 13.3.1 社区版在Windows 10/11上的完整安装与连接指南 对于刚接触MySQL数据库管理的开发者和学生来说,选择一个直观易用的图形化管理工具至关重要。SQLyog作为一款轻量级但功能强大的MySQL GUI工具,能够显著提升数据库操作的效率和体验。本文将详…
📅 2026/7/14 12:06:52
SPEC CPU 2006 跨平台基准测试深度实战:ARM/X86/MIPS 架构配置优化与结果分析方法论在当今多元化的计算架构时代,如何客观评估不同处理器平台的真实性能成为系统工程师和性能优化专家的核心挑战。SPEC CPU 2006 作为业界公认的计算密集型基准测试套件&am…
📅 2026/7/14 7:15:18
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/14 15:11:56
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/13 19:47:36
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/14 15:11:56