【问题标题】:C# BHO: Open new Internet Explorer Tab when clicked on extension buttonC# BHO:单击扩展按钮时打开新的 Internet Explorer 选项卡
【发布时间】:2020-09-27 09:54:20
【问题描述】:

您好,我正在用 C# 为 IE 开发 BHO。当用户单击我的扩展按钮时,我想在新选项卡中打开一个 URL。

我正在使用 IOleCommandTarget 接口方法来捕获点击事件。但是这些方法并没有提供任何可以用来调用导航方法的浏览器对象。所以,必须尝试下面提到的其他方法。

public int QueryStatus(ref Guid pguidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText)
        {
            try
            {
                InternetExplorer ie = null;

                SHDocVw.ShellWindows allBrowser = new SHDocVw.ShellWindows();
                int browserCount = allBrowser.Count - 1;

                while (browserCount >= 0)
                {
                    ie = allBrowser.Item(browserCount) as InternetExplorer;

                    if (ie != null && ie.FullName.ToLower().Contains("iexplore.exe"))
                    {
                      ie.Navigate2(SNXFileNames.ActivationPage, 0x1000);
                      break;
                    }

                    browserCount--;
                }            
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            return 0;
        }

此方法在开发机器中可以找到,但在非开发机器中会出现拒绝访问错误。

System.UnauthorizedAccessException:从具有 CLSID{} 的组件检索 COM 类工厂失败,原因是以下错误:80070005 访问被拒绝。

【问题讨论】:

    标签: c# internet-explorer-11 bho


    【解决方案1】:

    非开发机器的操作系统版本是多少?此错误通常是由于您的代码尝试创建的 COM 组件的访问设置错误造成的。

    您可以尝试启动 DCOMCNFG,进入 DCOM 设置,选择所需的对象并允许运行 C# 代码的帐户访问它。

    您也可以尝试通用解决方案:

    1. DCOMCNFG中,右键单击我的电脑并选择属性
    2. 选择 COM 证券 标签。
    3. 访问权限中,点击Edit Defaults并向其添加网络服务并授予其允许本地访问权限。对 \Users 执行相同操作。
    4. Launch and Activation Permissions 中,点击 Edit Defaults 并为其添加 Network Service 并为其赋予 Local launchLocal Activation 许可。对 \Users 执行相同操作。

    参考链接:Retrieving the COM class factory for component failed

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-09-20
      • 1970-01-01
      • 1970-01-01
      • 2016-03-11
      • 2022-07-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多