出版商信息“不可用”在使用 .Net for Internet Explorer 开发的 BHO 中

发布于 2024-12-26 08:05:22 字数 2727 浏览 2 评论 0原文

我在 SOF 以及 MSDN 论坛上进行了很多搜索,但不幸的是没有任何方法适合我。这是问题和所应用的方法。

  1. 我使用 .Net for Internet Explorer 7 开发了一个工具栏。它使用下面的 C# 安装程序代码注册为 BHO(浏览器帮助对象)。
  2. 我正在使用 MSI 安装程序和自定义安装类文件来注册 BHO。这是我的做法 我已经
  3. 对 dll 进行了签名,并为 MSI 生成并签署了 MSI 和 EXE。安装后,我在 c:\Program Files\My Test Extension\ 中验证我的扩展也具有数字签名。

问题:

问题是:当我转到 Internet Explorer 7 选项中的“托管插件”时,我在“不可用”下看到我的扩展/工具栏,而不是扩展/程序集属性中设置的公司名称。当我点击“更多信息”时,“发行商”不可用

请告诉我如何设置“发行商信息”?我使用的是 Verisign Inc. 颁发的密钥和有效证书。

请告诉我是否是。做错了什么或遗漏了什么。 我的安装程序/注册码。

            string name = t.Name;
        string help = t.Name;
        rkClass.SetValue(null, name);
        rkClass.SetValue("MenuText", name);
        rkClass.SetValue("HelpText", help);

        rkLMClass.SetValue(null, name);
        rkLMClass.SetValue("MenuText", name);
        rkLMClass.SetValue("HelpText", help);

        rkInprocServer32.SetValue(null, "mscoree.dll");
        rkInprocServer32.SetValue("ThreadingModel", "Both");
        rkInprocServer32.SetValue("Class", t.FullName);
        rkInprocServer32.SetValue("Assembly", "MyTestExtension, Version=1.0.0.0");
        rkInprocServer32.SetValue("RuntimeVersion", "v2.0.50727");

        rkLMInprocServer32.SetValue(null, "mscoree.dll");
        rkLMInprocServer32.SetValue("ThreadingModel", "Both");
        rkLMInprocServer32.SetValue("Class", t.FullName);
        rkLMInprocServer32.SetValue("Assembly", "MyTestExtension, Version=1.0.0.0");
        rkLMInprocServer32.SetValue("RuntimeVersion", "v2.0.50727");

        if (0 != (style & BandObjectStyle.Vertical))
        {
            rkCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.Horizontal))
        {
            rkCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.TaskbarToolBar))
        {
            rkCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.ExplorerToolbar))
            Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Toolbar").SetValue(guid, name);

        // register as BHO
        RegistryKey bhoKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\" + guid);
        bhoKey.SetValue("NoExplorer", 1, RegistryValueKind.DWord);

非常感谢

谢谢

史蒂夫。

I have searched a lot on here on SOF as well as on MSDN forums but unfortuntely no method could work for me. Here is the problem and the methods applied.

  1. I developed a toolbar using .Net for Internet Explorer 7. It is registered as BHO (browser Helper Object" using C# installer code that follows.
  2. I am using MSI setup and custom install class file to register the BHO. Here is how i am doing it.
  3. I have signed both the dll, generated and signed both the MSI and the EXE for the MSI. After installation i verify in c:\Program Files\My Test Extension\ that my extension has digital signature as well.

Problem:

The problem is: When i goto "Managed Addons" in Internet Explorer 7 Options, i see my extension/toolbar under "Not Available" instead of company name as set in Extension/assembly properties. The "Publisher" is not available when i click "more information".

Please tell how can i set "Publisher Information"? I am using key and valid certificate issued by Verisign Inc,.

Please tell if i am doing something wrong or missing something. Here is my installer/registration code.

            string name = t.Name;
        string help = t.Name;
        rkClass.SetValue(null, name);
        rkClass.SetValue("MenuText", name);
        rkClass.SetValue("HelpText", help);

        rkLMClass.SetValue(null, name);
        rkLMClass.SetValue("MenuText", name);
        rkLMClass.SetValue("HelpText", help);

        rkInprocServer32.SetValue(null, "mscoree.dll");
        rkInprocServer32.SetValue("ThreadingModel", "Both");
        rkInprocServer32.SetValue("Class", t.FullName);
        rkInprocServer32.SetValue("Assembly", "MyTestExtension, Version=1.0.0.0");
        rkInprocServer32.SetValue("RuntimeVersion", "v2.0.50727");

        rkLMInprocServer32.SetValue(null, "mscoree.dll");
        rkLMInprocServer32.SetValue("ThreadingModel", "Both");
        rkLMInprocServer32.SetValue("Class", t.FullName);
        rkLMInprocServer32.SetValue("Assembly", "MyTestExtension, Version=1.0.0.0");
        rkLMInprocServer32.SetValue("RuntimeVersion", "v2.0.50727");

        if (0 != (style & BandObjectStyle.Vertical))
        {
            rkCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021493-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.Horizontal))
        {
            rkCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021494-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.TaskbarToolBar))
        {
            rkCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}");
            rkLMCat.CreateSubKey("{00021492-0000-0000-C000-000000000046}");
        }
        if (0 != (style & BandObjectStyle.ExplorerToolbar))
            Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Internet Explorer\Toolbar").SetValue(guid, name);

        // register as BHO
        RegistryKey bhoKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects\" + guid);
        bhoKey.SetValue("NoExplorer", 1, RegistryValueKind.DWord);

Your help is very much appreciated.

Thanks

Steve

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那伤。 2025-01-02 08:05:22

在 AssemblyInfo.cs 文件中设置以下信息后,构建 DLL。

[assembly: AssemblyCompany("Your publisher name")]

当您注册该 DLL 时,请使用以下命令。

regasm /register /codebase YourDLL.dll

现在它将在 IE 的管理插件中显示您的发布者名称。

希望这更有意义。

After set following info in AssemblyInfo.cs file build the DLL.

[assembly: AssemblyCompany("Your publisher name")]

When you register that DLL then use the following command.

regasm /register /codebase YourDLL.dll

Now it will show your publisher name in manage addon in IE.

Hope this make more sense.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文