将事件处理程序添加到 ShellWindows 时0x80040202 HRESULT

本文关键字:0x80040202 HRESULT ShellWindows 事件处理 程序 添加 | 更新日期: 2023-09-27 18:36:05

我正在尝试建立一个在一堆远程计算机上后台运行的服务,该服务将简单地监视IE用于统计目的的次数。我的大部分代码都是编写的,它在我的开发计算机上运行绝对正常,该计算机具有与远程计算机相同的规格。我还确保远程计算机都具有Net Framework 4.5.1。

启动服务时,我收到此错误消息(我记录了它)

System.Runtime.InteropServices.COMException (0x80040202): Exception HRESULT : 0x80040202
at System.Runtime.InteropServices.ComTypes.IConnectionPoint.Advise(Object pUnkSink, Int32& pdwCookie)
at System.Runtime.InteropServices.ComEventsSink.Advise(Object rcw)
at System.Runtime.InteropServices.ComEventsInfo.AddSink(Guid& iid)
at System.Runtime.InteropServices.ComEventsHelper.Combine(Object rcw, Guid iid, Int32 dispid, Delegate d)
at System.Runtime.InteropServices.ComAwareEventInfo.AddEventHandler(Object target, Delegate handler)
at ServiceLogger.Service1..ctor()

这是导致此错误的代码,当我的服务由program.cs创建时会发生,我没有修改program.cs。

InitializeComponent();
shellWindows = new SHDocVw.ShellWindows(); //Global var
shellWindows.WindowRegistered += shellWindows_WindowRegistered; <-- This is the error

我在谷歌上搜索了一整天,似乎没有人遇到这个问题,它只发生在远程计算机上。这些计算机配置中是否有导致此问题的内容?shdocvw 库有问题吗?

将事件处理程序添加到 ShellWindows 时0x80040202 HRESULT

事实证明,

这实际上是Internet Explorer本身的问题。

我们想防止用户在这些计算机上做很多事情,我们摆弄了太多的IE,不得不安装一个特殊的版本来阻止很多事情。

我重建了机器,测试了服务,它工作正常。

相关文章: