使用C#在注册表中保存信息的例子

 更新时间:2014年04月17日 11:56:35   作者:  
最近做的项目需要在注册表中记录一些用户设置,方便在程序下次启动时读取设置,应用上次用户保存的设置,挺简单的

写出来,方便记忆,以后要用,可以直接改改就能用。

复制代码 代码如下:

using System;

namespace Backend
{
    public class RegistryStorage
    {
        public static PageVisibility OpenAfterStart()
        {
            Microsoft.Win32.RegistryKey registryKey;
            PageVisibility visibility = PageVisibility.Visible;

            // HKCU\Software\RegeditStorage
            registryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\RegistryStorage");
            if (registryKey != null)
            {
                visibility = (string)registryKey.GetValue("PageVisibility") == PageVisibility.Hide.ToString() ?
                    PageVisibility.Hide : PageVisibility.Visible;
                registryKey.Close();
            }

            return visibility;
        }

        public static void SaveBeforeExit(PageVisibility visibility)
        {
            Microsoft.Win32.RegistryKey registryKey;

            // HKCU\Software\RegeditStorage
            registryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\RegistryStorage");
            registryKey.SetValue("PageVisibility", visibility.ToString());
            registryKey.Close();
        }
    }

    public enum PageVisibility
    {
        Visible,
        Hide
    }
}

代码很容易理解,下面添加一点代码来测试一下。

复制代码 代码如下:

using System;
using System.Diagnostics;

namespace Backend.Test
{
    class Program
    {
        static void Main(string[] args)
        {
            // 存值
            RegistryStorage.SaveBeforeExit(PageVisibility.Hide);
            // 取值
            PageVisibility visibility = RegistryStorage.OpenAfterStart();
            // 验证
            Debug.Assert(visibility == PageVisibility.Hide);

  
            // 存值
            RegistryStorage.SaveBeforeExit(PageVisibility.Visible);
            // 取值
            visibility = RegistryStorage.OpenAfterStart();
            // 验证
            Debug.Assert(visibility == PageVisibility.Visible);

            Console.WriteLine("Press any key to exit.");
            Console.ReadKey();
        }
    }
}

最后,上一张修改后的注册表截图:

相关文章

  • 详解C#借助.NET框架中的XmlTextReader类读取XML的方法

    详解C#借助.NET框架中的XmlTextReader类读取XML的方法

    这篇文章主要介绍了详解借助.NET框架中的XmlTextReader类读取XML的方法,这种方式的执行效率还是比较令人满意的,需要的朋友可以参考下
    2016-04-04
  • C#使用linq语句查询数组中以特定字符开头元素的方法

    C#使用linq语句查询数组中以特定字符开头元素的方法

    这篇文章主要介绍了C#使用linq语句查询数组中以特定字符开头元素的方法,涉及C#使用linq进行查询的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • Unity EasyTouch摇杆插件使用示例详解

    Unity EasyTouch摇杆插件使用示例详解

    这篇文章主要介绍了Unity EasyTouch摇杆插件使用,这套插件还支持双指缩放,滑动,手指画圈,点击,多指触碰,拖拽等,通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2021-10-10
  • WPF自定义路由事件的实例教程

    WPF自定义路由事件的实例教程

    WPF中有两种事件模型,一种是在WinForm时代就存在的CLR事件,另一种是WPF时代的路由事件,这篇文章主要给大家介绍了关于WPF自定义路由事件的相关资料,需要的朋友可以参考下
    2021-09-09
  • 字符串替换Replace仅替换第一个字符串匹配项

    字符串替换Replace仅替换第一个字符串匹配项

    C#里面的String.Replace(string,string)方法替换的时候是替换所有的匹配项,我们需要只替换第一个匹配项,写一个方法来实现这个功能
    2013-12-12
  • C#实现读取ini配置文件的内容

    C#实现读取ini配置文件的内容

    INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打开,本文主要为大家详细介绍了C#实现读取ini配置文件内容的方法,需要的小伙伴可以了解下
    2023-12-12
  • C# 9.0新特性——只初始化设置器

    C# 9.0新特性——只初始化设置器

    这篇文章主要介绍了C# 9.0新特性——只初始化设置器的相关资料,帮助大家更好的理解和学习,感兴趣的朋友可以了解下
    2020-11-11
  • 简单实现C#异步操作

    简单实现C#异步操作

    这篇文章主要为大家详细介绍了C#简单实现异步操作的方法,通过BeginInvoke、EndInvoke的方式实现异步编程,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • C#语言中条件与&&与条件或||的区别

    C#语言中条件与&&与条件或||的区别

    这篇文章主要介绍了&&:逻辑与,前后条件同时满足表达式为真 ||:逻辑或,前后条件只要有一个满足表达式为真,下面结合案例给大家介绍,需要的朋友可以参考下
    2015-07-07
  • DevExpress TreeList 常见问题解决方法

    DevExpress TreeList 常见问题解决方法

    这篇文章主要介绍了DevExpress TreeList 常见问题解决方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12

最新评论