c# - 使用 c# 安装后从程序和功能中隐藏 MS Office 加载项
问题描述
我不想在安装后从程序和控制面板中显示我的 powerpoint 插件。
为此,我尝试在手动添加此插件后在注册表HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall中添加systemcomponent属性,该插件已成功从程序和功能中隐藏,但是当我尝试从我的代码中执行此操作时,出现异常键入ThrowUnauthorizedAccessException(异常错误消息“无法写入注册表项”)虽然我在管理员模式下运行该.exe 。我没有弄清楚如何使用 C# 代码在“ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall ”目录中添加此属性。
如果这不是正确的解决方案,那么我还能做什么?
这是我的代码
RegistryKey registry = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall", true);
foreach (var subkey in registry.GetSubKeyNames())
{
RegistryKey productKey = registry.OpenSubKey(subkey);
if (productKey != null)
{
foreach (var value in productKey.GetValueNames())
{
string keyValue = Convert.ToString(productKey.GetValue(value));
if (keyValue.ToLower().Contains("myaddin"))
{
try
{
productKey.SetValue("SystemComponent", 1, RegistryValueKind.DWord);
productKey.Close();
return;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
}
}
解决方案
推荐阅读
- listview - 我怎样才能让它在颤动中滚动
- c++ - 如何向 Qt Creator 添加新工具包
- laravel - Eloquent SELECT "string" AS content_type 导致错误
- php - php中的支付api多维数组问题
- powershell - 正则表达式匹配上的Powershell替换字符串
- python - 如何将 Pyomo 变量中的结果导出到 Pandas 数据框和 Excel?
- ios - 用于 Firebase 应用内消息的 Flutter 包不是为 ios 构建的
- docker - 将在主机端口上运行的应用程序暴露给 Selenoid
- r - R - 每个文档的文章之间的相关性
- opencascade - 在 opencascade 中对 TopoDS_Edge 对象进行分类