ai_office_plugin/updater/RegistHelper.cs
2024-08-20 22:43:50 +08:00

53 lines
1.8 KiB
C#

using Microsoft.Win32;
namespace updater
{
internal class RegistHelper
{
public static string GetRegistData(RegistryKey rtype, string path, string name)
{
RegistryKey registryKey = rtype.OpenSubKey(path, writable: false);
if (registryKey != null)
{
if (registryKey.GetValue(name) != null)
{
return registryKey.GetValue(name).ToString();
}
return string.Empty;
}
return string.Empty;
}
public static string GetAllRegistData(RegistryHive rtype, string path, string name)
{
RegistryKey registryKey = RegistryKey.OpenBaseKey(rtype, RegistryView.Registry32).OpenSubKey(path);
if (registryKey == null)
{
registryKey = RegistryKey.OpenBaseKey(rtype, RegistryView.Registry64).OpenSubKey(path);
}
if (registryKey != null)
{
return registryKey.GetValue(name).ToString();
}
return string.Empty;
}
public static void WriteCURegedit(string name, string tovalue)
{
Registry.CurrentUser.OpenSubKey("SOFTWARE", writable: true).CreateSubKey("mine\\WordAddInTest1").SetValue(name, tovalue);
}
public static void DeleteCURegist(string name)
{
RegistryKey registryKey = Registry.CurrentUser.OpenSubKey("SOFTWARE", writable: true).OpenSubKey("mine\\WordAddInTest1", writable: true);
string[] subKeyNames = registryKey.GetSubKeyNames();
for (int i = 0; i < subKeyNames.Length; i++)
{
if (subKeyNames[i] == name)
{
registryKey.DeleteSubKeyTree(name);
}
}
}
}
}