zoukankan      html  css  js  c++  java
  • C#实现在注册表中保存信息

    C#实现在注册表中保存信息

    最近做的项目需要在注册表中记录一些用户设置,方便在程序下次启动时读取设置,应用上次用户保存的设置,挺简单的。

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

    复制代码
     1 using System;
     2 
     3 namespace Backend
     4 {
     5     public class RegistryStorage
     6     {
     7         public static PageVisibility OpenAfterStart()
     8         {
     9             Microsoft.Win32.RegistryKey registryKey;
    10             PageVisibility visibility = PageVisibility.Visible;
    11 
    12             // HKCUSoftwareRegeditStorage
    13             registryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"SoftwareRegistryStorage");
    14             if (registryKey != null)
    15             {
    16                 visibility = (string)registryKey.GetValue("PageVisibility") == PageVisibility.Hide.ToString() ?
    17                     PageVisibility.Hide : PageVisibility.Visible;
    18                 registryKey.Close();
    19             }
    20 
    21             return visibility;
    22         }
    23 
    24         public static void SaveBeforeExit(PageVisibility visibility)
    25         {
    26             Microsoft.Win32.RegistryKey registryKey;
    27 
    28             // HKCUSoftwareRegeditStorage
    29             registryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"SoftwareRegistryStorage");
    30             registryKey.SetValue("PageVisibility", visibility.ToString());
    31             registryKey.Close();
    32         }
    33     }
    34 
    35     public enum PageVisibility
    36     { 
    37         Visible,
    38         Hide
    39     }
    40 }
    复制代码

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

    复制代码
     1 using System;
     2 using System.Diagnostics;
     3 
     4 namespace Backend.Test
     5 {
     6     class Program
     7     {
     8         static void Main(string[] args)
     9         {
    10             // 存值 
    11             RegistryStorage.SaveBeforeExit(PageVisibility.Hide);
    12             // 取值
    13             PageVisibility visibility = RegistryStorage.OpenAfterStart();
    14             // 验证
    15             Debug.Assert(visibility == PageVisibility.Hide);
    16 
    17 
    18             // 存值
    19             RegistryStorage.SaveBeforeExit(PageVisibility.Visible);
    20             // 取值
    21             visibility = RegistryStorage.OpenAfterStart();
    22             // 验证
    23             Debug.Assert(visibility == PageVisibility.Visible);
    24 
    25             Console.WriteLine("Press any key to exit.");
    26             Console.ReadKey();
    27         }
    28     }
    29 }
    复制代码

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

    版权归博客园和作者共有。.NET类库源码参考 扣丁格鲁 www.projky.com,转载请注明出处。
  • 相关阅读:
    如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    什么是 JavaConfig?
    序列号Sequences
    包Packages
    参数Parameters、变量Variables
    maven配置多个镜像
    各种http报错的报错的状态码的分析
    举例说明同步和异步。
    第二阶段的任务及燃尽图(第二天)
    第二阶段的任务及燃尽图(第一天)
  • 原文地址:https://www.cnblogs.com/zxtceq/p/5319568.html
Copyright © 2011-2022 走看看