【问题标题】:Changing the name of Browser Helper Objects更改浏览器助手对象的名称
【发布时间】:2012-01-30 17:02:09
【问题描述】:

我正在以这种方式注册我的 BHO:

    public static string RegistryKeyLocation = "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Browser Helper Objects";

    [ComRegisterFunction]
    public static void Register(Type type)
    {
        RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(RegistryKeyLocation, Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree);

        if (registryKey == null)
        {
            registryKey = Registry.LocalMachine.CreateSubKey(RegistryKeyLocation);
        }

        string guid = type.GUID.ToString("B");
        RegistryKey bhoKey = registryKey.OpenSubKey(guid, Microsoft.Win32.RegistryKeyPermissionCheck.ReadWriteSubTree);

        if (bhoKey == null)
        {
            bhoKey = registryKey.CreateSubKey(guid);
        }           

        bhoKey.SetValue("IE Ext", 1);
        registryKey.Close();
        bhoKey.Close();
    }

如何设置在 IE 的插件列表中可见的 BHO 名称?此时扩展名取自 BHO 的命名空间,看起来很丑..

【问题讨论】:

    标签: c# .net internet-explorer bho add-on


    【解决方案1】:

    新答案

    您应该能够在互操作类上使用 ProgIdAttribute 控制显示名称。

    旧答案

    看起来这可以通过在 BHO 键中设置(默认)值来实现。在bhoKey.SetValue("IE Ext", 1); 周围添加以下内容:

    bhoKey.SetValue(string.Empty, "Some Clean BHO Name");
    

    【讨论】:

    • 很遗憾你的小费没有帮助。
    • 这应该与本教程中 .rgs 文件所做的相同:msdn.microsoft.com/en-us/library/bb250489(v=vs.85).aspx。
    • @user1013552 - 谷歌参考的几十个教程告诉我它应该是。只是一个想法 - 您是否在设置(默认)reg 值后尝试重新启动计算机?至少资源管理器可能正在缓存它。
    • 我在设置默认值后重启了系统(无效)。
    • @user1013552- 根据安装在我桌面上的几个 BHO 的注册表设置,看起来 IE 正在从 COM 注册表项的(默认)值 (HKEY_LOCAL_MACHINE\ SOFTWARE\Classes\CLSID)而不是 BHO 键。我不确定如何控制 COM 互操作程序集,但这绝对是它的来源。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-19
    • 2017-04-18
    • 2014-05-22
    • 1970-01-01
    • 2010-11-03
    • 1970-01-01
    相关资源
    最近更新 更多