如何在 VSTO Word 插件项目中设置自定义注册表?
How to set custom registry in VSTO Word Plugin project?
我正在开发 VSTO Word 插件项目。当我构建项目时,它会自动在 HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\My.Registry
位置创建 4 个注册表,如下所示。
Name Type Data
-------------- -------------- ------------------------
(Default) REG_SZ (value not set)
Description REG_SZ My.Registry
FriendlyName REG_SZ My.Registry
LoadBehavior REG_DWORD 0x00000003 (3)
Manifest REG_SZ file:///D:/LearningProject/My.Registry/bin/debug/My.Registry.vsto|vstolocal
现在我想在具有不同键值对的相同路径中添加另一个注册表。我不知道这个注册表是如何生成的。这样我就无法将自定义注册表与这些现有注册表一起创建。
需要指导。
由于您正在构建项目并且它添加了这些值,也许在 Visual studio
中的 prebuild/postbuild 事件下检查
如果不是这种情况,您可能需要在应用程序启动时做一个简单的注册表项
public static bool WriteRegistryValue<T>(RegistryHive hive, string key, string value, RegistryValueKind kind, T data)
{
bool success = false;
using (RegistryKey baseKey = RegistryKey.OpenRemoteBaseKey(hive, String.Empty))
{
if (baseKey != null)
{
using (RegistryKey registryKey = baseKey.OpenSubKey(key, RegistryKeyPermissionCheck.ReadWriteSubTree))
{
if (registryKey == null)
{
using (RegistryKey createdRegistryKey = baseKey.CreateSubKey(key, true))
{
registryKey.SetValue(value, data as string);
}
}
else
{
registryKey.SetValue(value, data as string);
}
success = true;
}
}
}
return success;
}
我正在开发 VSTO Word 插件项目。当我构建项目时,它会自动在 HKEY_CURRENT_USER\Software\Microsoft\Office\Word\Addins\My.Registry
位置创建 4 个注册表,如下所示。
Name Type Data
-------------- -------------- ------------------------
(Default) REG_SZ (value not set)
Description REG_SZ My.Registry
FriendlyName REG_SZ My.Registry
LoadBehavior REG_DWORD 0x00000003 (3)
Manifest REG_SZ file:///D:/LearningProject/My.Registry/bin/debug/My.Registry.vsto|vstolocal
现在我想在具有不同键值对的相同路径中添加另一个注册表。我不知道这个注册表是如何生成的。这样我就无法将自定义注册表与这些现有注册表一起创建。
需要指导。
由于您正在构建项目并且它添加了这些值,也许在 Visual studio
中的 prebuild/postbuild 事件下检查如果不是这种情况,您可能需要在应用程序启动时做一个简单的注册表项
public static bool WriteRegistryValue<T>(RegistryHive hive, string key, string value, RegistryValueKind kind, T data)
{
bool success = false;
using (RegistryKey baseKey = RegistryKey.OpenRemoteBaseKey(hive, String.Empty))
{
if (baseKey != null)
{
using (RegistryKey registryKey = baseKey.OpenSubKey(key, RegistryKeyPermissionCheck.ReadWriteSubTree))
{
if (registryKey == null)
{
using (RegistryKey createdRegistryKey = baseKey.CreateSubKey(key, true))
{
registryKey.SetValue(value, data as string);
}
}
else
{
registryKey.SetValue(value, data as string);
}
success = true;
}
}
}
return success;
}