最近做的項目需要在注冊表中記錄一些用戶設置,方便在程序下次啟動時讀取設置,應用上次用戶保存的設置,挺簡單的。
寫出來,方便記憶,以后要用,可以直接改改就能用。
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 // HKCU\Software\RegeditStorage 13 registryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\RegistryStorage"); 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 // HKCU\Software\RegeditStorage 29 registryKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\RegistryStorage"); 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 }
最后,上一張修改后的注冊表截圖: