【.NET】开机自启注册表写入

开机自启注册表写入

认知尚浅,如有错误,愿闻其详!

概述

在便签项目中,会涉及到便签页的设置和便签内容的数据本地保存与开机自启设置等。而这些数据内容都需要写到Windows中的注册表里。注册表有什么用?点我
简单的讲,我们就是在注册表中进行读写,对键值对的操作。

引用与类

在C#中,要对注册表进行操作需要引用Microsoft.Win32命名空间,其中本例主要使用的是RegistryKey类和Registry类。

案例代码

首先,我将便签需要写入的相关数据进行Json数据格序列化(使用using Newtonsoft.Json),得到该数据

{
"WinLeft":1243.0,
"WinTop":2.0,
"WinWidth":200.0,
"WinHeigth":250.0,
"Data":"\r\n2、注册表简单使用\r\n3、窗口全透明,及控件也透明解决\r\n4、SQLHelper工具类实现\r\n5、SQL常用语句",
"Theme":3,
"Style":0,
"Opacity":0.7,
"Title":"待做事项",
"Hidden":false,
"Topmost":false,
"CustomTheme":{"Name":"默认","TextColor":"#FFFFFF","BackColor":"#FFAEB9","TopBarColor":"#FFAEB9"},
"CustomStyle":{"Name":"默认","FontFamily":"微软雅黑","FontSize":"13"},
"CreationTime":"0001-01-01T00:00:00"
}

然后创建我自己的注册表目录,并赋值给注册表键对象:

 /// <summary>
/// 创建该软件注册表目录,用存储相关数据,并且是注册表键对象
/// </summary>
public static RegistryKey REG_PATH = Registry.CurrentUser.CreateSubKey("Software").CreateSubKey("MMY StickyNote").CreateSubKey("StickyNote");

获取到相应的键后,我们就可以在需要的地方调用SateData方法执行SetValue(名称,值)方法实现对其值得修改。最终完成注册表写入

/// <summary>
/// 将数据写入注册表
/// </summary>
/// <param name="id">便签窗口Id</param>
// <param name="data">此便签相关的数据对象</param>
public static void SetData(string id, ViewSettingData data)
{
    string dat = JsonConvert.SerializeObject(data);
     REG_PATH.SetValue(id, dat);//写入注册表,写入名称与值。
 }

开机自启注册表写入

/// <summary>
/// 开机启动项打开节点赋值
/// </summary>
public static RegistryKey START_KEY = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);

/// <summary>
/// 注册表开机自项创建及修改
/// </summary>
public static bool StartWithWindows
{
      get
      {
          object obj = START_KEY.GetValue("MMY StickyNote", null);//获取自启注册表项,
          if (obj == null) return false;
          return true;
      }
      set
      {
          if (value) { START_KEY.SetValue("MMY StickyNote", Assembly.GetExecutingAssembly().Location); }//根据checkBox传入的值来决定。设置自启注册表项,获取可执行文件目录,赋值注册表
          else
           {
                try { START_KEY.DeleteValue("MMY StickyNote", false); }//删除该注册表自启项
                catch { }
           }
       }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值