• 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,转载请注明出处。
  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/zxtceq/p/5319568.html
Copyright © 2020-2023  润新知