From c5c71736a9933a7ccfa96932d466fb8d626152f8 Mon Sep 17 00:00:00 2001 From: Elivo Date: Wed, 6 Aug 2025 14:16:49 +0800 Subject: [PATCH] =?UTF-8?q?RegistryHelper=EF=BC=9A=E4=BF=AE=E6=AD=A3?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=BC=80=E6=9C=BA=E5=90=AF=E5=8A=A8=E9=A1=B9?= =?UTF-8?q?=E7=9A=84=E8=BE=85=E5=8A=A9=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{RegHelper.cs => RegistryHelper.cs} | 26 ++++++++++++------- Apewer.Windows/WindowsUtility.cs | 4 +-- 2 files changed, 18 insertions(+), 12 deletions(-) rename Apewer.Windows/Internals/{RegHelper.cs => RegistryHelper.cs} (81%) diff --git a/Apewer.Windows/Internals/RegHelper.cs b/Apewer.Windows/Internals/RegistryHelper.cs similarity index 81% rename from Apewer.Windows/Internals/RegHelper.cs rename to Apewer.Windows/Internals/RegistryHelper.cs index 2303b67..d0956b5 100644 --- a/Apewer.Windows/Internals/RegHelper.cs +++ b/Apewer.Windows/Internals/RegistryHelper.cs @@ -7,7 +7,7 @@ namespace Apewer.Internals { /// 注册表。 - static class RegHelper + static class RegistryHelper { /// 用户登录后的启动项。 @@ -21,12 +21,12 @@ namespace Apewer.Internals /// 系统信息,对所有用户生效,设置需要管理员权限。 public static RegistryKey LocalMachine { get => Registry.LocalMachine; } - /// 获取字符串。 + /// 获取值。 /// 注册表存储区。 /// 路径。 /// 名称。 - /// 字符串的值。获取失败时返回 NULL 值。 - public static string Get(RegistryKey root, string key, string name) + /// 值。获取失败时返回 NULL 值。 + public static object Get(RegistryKey root, string key, string name) { try { @@ -34,18 +34,24 @@ namespace Apewer.Internals using #endif var rkey = root.OpenSubKey(key, RegistryKeyPermissionCheck.ReadSubTree); - var names = rkey.GetSubKeyNames(); + var names = rkey.GetValueNames(); if (names.Contains(name)) { - var obj = rkey.GetValue(name, null); - var str = obj as string; - return str; + var value = rkey.GetValue(name, null); + return value; } } catch { } return null; } + /// 获取字符串。 + /// 注册表存储区。 + /// 路径。 + /// 名称。 + /// 字符串的值。获取失败时返回 NULL 值。 + public static string GetString(RegistryKey root, string key, string name) => Get(root, key, name) as string; + /// 设置字符串,指定 value 为 NULL 可删除该值。 /// 注册表存储区。 /// 路径。 @@ -75,7 +81,7 @@ namespace Apewer.Internals /// 错误消息。 public static void SetRun(string name, string command) { - var old = Get(CurrentUser, Run, name); + var old = GetString(CurrentUser, Run, name); if (old.IsEmpty()) Set(CurrentUser, Run, name, command); } @@ -93,7 +99,7 @@ namespace Apewer.Internals { var path = Application.ExecutablePath; var name = Path.GetFileNameWithoutExtension(path); - var value = Get(CurrentUser, Run, name); + var value = GetString(CurrentUser, Run, name); return value == path; } set diff --git a/Apewer.Windows/WindowsUtility.cs b/Apewer.Windows/WindowsUtility.cs index 1dde123..0844ce6 100644 --- a/Apewer.Windows/WindowsUtility.cs +++ b/Apewer.Windows/WindowsUtility.cs @@ -991,11 +991,11 @@ namespace Apewer /// 设置当前用户的启动项。 /// 启动项的名称。 /// 执行的命令。 - public static void SetRun(string name, string command) => RegHelper.SetRun(name, command); + public static void SetRun(string name, string command) => RegistryHelper.SetRun(name, command); /// 取消当前用户的启动项。 /// 启动项的名称。 - public static void CancelRun(string name) => RegHelper.CancelRun(name); + public static void CancelRun(string name) => RegistryHelper.CancelRun(name); #endregion