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,转载请注明出处。
  • 相关阅读:
    [MCM] PSO粒子群算法解决TSP问题
    [MCM] 2017研究生数学建模竞赛A题 3架飞机 TSP 求总路径最小
    [tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕)
    使用vsnprintf后链接错误及解决方法
    Linux Shell编程
    如何把va_list可变参数传送到下一级函数中(如传送到printf)
    ubuntu phone/touch的源码从哪里下载?
    The Native POSIX Thread Library for Linux
    Linux内核头文件与内核与库的关系
    Buildroot阅读笔记
  • 原文地址:https://www.cnblogs.com/zxtceq/p/5319568.html
Copyright © 2011-2022 走看看