gpt4 book ai didi

C# WebBrowser 控件未触发 DocumentCompleted 事件

转载 作者:行者123 更新时间:2023-11-30 13:12:46 25 4
gpt4 key购买 nike

我有一个使用 C# WebBrowser 控件的程序,它需要检测加载了哪个页面以确定下一步要做什么。该程序在办公室的大多数员工计算机上运行良好,但在某些计算机上无法运行。

我确定问题是 documentCompleted 事件没有在它不工作的那些计算机上触发。

该程序确实使用线程来处理数据,并且 webbrowser.navigate 调用是通过委托(delegate)进行的。但我还更改了代码,不对导航操作使用委托(delegate),结果没有变化。

我还制作了一个单独的程序,它只有一个基本的 WebBrowser 和调试 textfield,以及 DocumentCompleted 事件 does 使用该程序时触发。

注意:未启动的计算机是具有单核/线程处理器的旧 PC。

我对此一无所知,如有任何帮助,我们将不胜感激。

最佳答案

正如 CodeBlock 所解释的,这似乎与 Microsoft.mshtml.dll 的安装状态有关

我们有客户在 GAC(也不在计算机)中不存在 Microsoft.mshtml.dll,然后 WebBrowser 组件永远不会触发任何事件。

通过在 WebBrowser 类中使用 Reflector,DocumentComplete 事件由名为 WebBrowserEvent 的子类引发,该子类实现了私有(private)接口(interface) DWebBrowserEvents2

此接口(interface)是 {34A715A0-6587-11D0-924A-0020AFC7AC4D}ComImport,我想它与 Microsoft.mshtml.dll 相关。

所以我们的解决方案是安装 the Office 2003 Redistributable Primary Interop Assemblies ,它将 DLL 安装在 Program Files 上,然后在 GAC 上注册它。

注意:不要关注是否需要.NET Framework 1.1或office,只是复制了一些dll。

注释 2:2007 package似乎包含相同的 dll。

关于C# WebBrowser 控件未触发 DocumentCompleted 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/711040/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com