小Q的博客

  • 首页
  • net编程
    • 产品和框架
    • 开发实例
    • 经验技巧
    • 开源组件
  • wp独立站
  • 自媒体
  • 日记本
  • 工具箱
每个程序员,都应该有一个自己的博客站
  1. 首页
  2. net编程
  3. 经验技巧
  4. 正文

让程序开机就运行,只需注册表加一句代码

2023年3月18日 1175点热度 0人点赞 0条评论

一直用小Q书桌这款小工具,来管理经常用到的工具。不知道最近怎么回事,这个工具不能开机自动运行了。

 

本来它有个选项,勾上的话就开机运行,结果也没效果。那么问题来了,如何让程序开机就自动运行呢?查了下资料,其实也简单。总结起来,一句代码就能搞定。

先Win+R打开命令行,输入:regedit,打开注册表。找到下面的路径。这里需要注意的是

程序是32位的注册表路径

SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run

程序是64位的注册表路径

SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run

 

右键新建->字符串(值),键入你要开机运动的程序完整路径,加上双引号。后面再加-autorun关键字即可。

以上步骤也可以通过代码实现,完整代码如下

var starupPath = GetType().Assembly.Location;//获得程序路径其他方式也可以
try
{
    var fileName = starupPath;
    var shortFileName = fileName.Substring(fileName.LastIndexOf('\\') + 1);
    //打开子键节点
    var myReg = Registry.LocalMachine.OpenSubKey(
        "SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run", RegistryKeyPermissionCheck.ReadWriteSubTree,
        RegistryRights.FullControl);
    if (myReg == null)
    {
        //如果子键节点不存在,则创建之
        myReg = Registry.LocalMachine.CreateSubKey("SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Run");
    }
    if (myReg != null && myReg.GetValue(shortFileName) != null)
    {
        //在注册表中设置自启动程序
        myReg.DeleteValue(shortFileName);
        myReg.SetValue(shortFileName, fileName);

    }
    else if (myReg != null && myReg.GetValue(shortFileName) == null)
    {
        myReg.SetValue(shortFileName, fileName);

    }
}
catch
{

}

 

相关阅读

c#中文件路径出现非法字符怎么办?解决也容易

标签: 开机运行 注册表
最后更新:2023年3月18日

小Q

80后中年不油腻大叔,喜欢编写代码、打羽毛球、做木制玩具。目前定居浙江杭州

打赏 点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2022 小Q的博客. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

浙ICP备2022019157号-2