问题标签 [shdocvw]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
277 浏览

c# - 找出windows的活动IE实例的启动点

我们有一个在 Windows 上作为服务运行的应用程序。该服务使用 SHDocVw.ShellWindows() 定期检查活动的 Internet Explorer 实例。这样,我们就可以在每个 IE 实例中捕获 URL。

我的问题:是否有可能找出每个 IE 实例中的网页是如何启动的。例如 -

  • 用户是否在 IE 中输入 url 来加载网页?
  • 用户是否从另一个 IE 选项卡中选择了链接来启动?
  • 用户是否从其他桌面应用程序(如 Outlook 等)启动 IE 实例

谢谢你。

0 投票
0 回答
686 浏览

c# - 无法通过 C# 中的 SHDocVw 获取 Internet Explorer 实例

我有这段代码的 WPF C# 应用程序:

在迭代时,我确实有 2 个打开的 Internet Explorer 窗口。第一个用 JS 打开另一个。

背后的场景是,在 IE 用户的第一个实例中,从产品中选择并点击创建订单按钮。该按钮打开 IE 的第二个实例,其中格式化的订单已准备好打印(也会自动打开“打印”对话框)。

使用上面的代码,我只能看到第一个 IE 实例而不是另一个。当我在迭代之前手动打开一些 IE 窗口时,我也可以在 shellWindows 中看到它们。

知道为什么 shellWindows 中不存在第二个打开的 IE 实例吗?我如何以其他方式连接到第二个 IE 实例?

0 投票
0 回答
5785 浏览

vb.net - SHDocVw.InternetExplorerMedium 和 SHDocVw.InternetExplorer 有什么区别?

一些答案似乎表明我应该使用 SHDocVw.InternetExplorerMedium 进行 Internet Explorer 自动化。

internetexplorer medium 和 internet explorer 有什么区别?

我试图运行这段代码,但我得到了对象断开异常

实际上,如果我单步执行该程序,则该对象会立即断开连接

0 投票
1 回答
1926 浏览

c# - 向 ShellWindows 添加事件处理程序时出现 HRESULT 0x80040202

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

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

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

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

0 投票
1 回答
929 浏览

c# - 使用 SHDocVw Navigate2 进行导航时,WIN10 中的操作中止异常,即

我有一个 C# 项目,它使用Interop.SHDocVw在 IE 浏览器中打开 url 。

该代码使用 InternetExplorerClass 对象的单个实例并导航到不同的 url。这些 url 都在Intranet区域中。

该代码在WIN7上运行良好,但在WIN10上出现问题。IE 浏览器第一次正确打开 url,但是当我第二次尝试使用 navigate 或 navigate2 方法使用它时,出现以下错误:

System.Runtime.InteropServices.COMException (0x80004004): SHDocVw.InternetExplorerClass.Navigate (String URL, Object& Flags, Object& TargetFrameName, Object& PostData, Object& Headers) 处的操作中止(HRESULT 异常:0x80004004 (E_ABORT))

我尝试“以管理员身份”运行主机应用程序,然后它运行良好。此外,当我在 IE 窗口中手动导航到Internet区域中的 url 时,没有问题,但是当手动导航到不同的Intranet url 并尝试第二次运行代码时,再次抛出错误。

代码

公共静态无效 IEOpenOnURL(字符串 url){ 对象 o = null; 布尔新浏览器=假;

0 投票
0 回答
544 浏览

vb.net - 如何在多个线程上访问 mshtml.HTMLDocument.frames?

所以,我有一个主线程,它捕获现有的 IE 浏览器并将 HTMLDocument 保存在一个变量中。我将一个事件处理程序附加到此文档的“onload”事件,因为我需要一个位于其中的框架。如果我在主线程中捕获帧,一切都很好,但是当引发事件时,当我访问文档时会出现异常:

我尝试调用主线程,我尝试确保主文档已完全加载,但似乎没有任何效果。我总是收到“指定的演员表无效。

将 MyHTMLDocument.frames放入Visual Studio 中的 Watch 窗口也会给出相同的异常“指定的转换无效。 ”我没有转换任何东西,是吗?一些网站建议使用<STAThread()> _我试过的,但无济于事。我也试过了TryCast(MyHTMLDocument.frames, FramesCollection)

我需要做的就是在文档刷新时重新捕获具有特定名称的框架文档。我认为这是线程的问题,但调用甚至不起作用......有趣的是我可以访问其他东西,如 Title、GetElementsByName 等。只是不是那些该死的帧......

0 投票
1 回答
407 浏览

delphi - 更新的 TWebBrowser 现在从一开始就实现了 IDocUIHandler,我怎样才能继续使用我的自定义实现?

从 Delphi 10.0 Seattle 开始,Embarcadero 改变了TWebBrowser控件的实现:

西雅图前:TWebBrowser = class(TOleControl)

西雅图+:TWebBrowser = class(TOleControl, IDocHostUIHandler, IDocHostShowUI, IOleCommandTarget)

我有一些旧代码在运行,我已经实现了一个可以注册为客户端站点/主机的类TWebBrowser,我提供了我自己的IDocHostUIHandler接口实现。

由于 aTWebBrowser现在从一开始就实现了这些(并保持私有)并且据我所知很难继承 - 我如何着手让新TWebBrowser组件重新注册在哪里可以找到实现IDocHostUIHandler

0 投票
1 回答
4504 浏览

ms-word - COMException: 调用的对象已与其客户端断开连接

我有一个用 C# 编写的程序,它通过整理一堆文本(从对象中提取)来创建一个 Word 文档。在过去的 4 年中,此应用程序在许多不同的机器上运行良好,但现在它正在为一个新客户端中断,并出现以下错误:

System.Runtime.InteropServices.COMException (0x80010108):调用的对象已与其客户端断开连接。(来自 HRESULT 的异常:0x80010108 (RPC_E_DISCONNECTED))在 Microsoft.Office.Interop.Word.DocumentClass.get_Content() 在 MyCompany.MyApp.Main.btnPrint_Click(Object sender, EventArgs e) 在 System.Windows.Forms.Control.OnClick( EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs 事件) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 点击) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms。 Control.ControlNativeWindow.OnMessage(消息&

这是代码片段(它不会按原样编译,因为这只是一个摘录,但应该有意义):

我在 MSDN 论坛上读到这可能是由于缺少名为 SHDocVw.dll 的库。我已经使用包含的库重新打包了我的应用程序,但结果相同。其他人说这可能是服务包问题,但没有任何推荐的解决方案。另一个人建议忽略“80010108”错误,但这个想法很快被 OP 驳回。我还在这里读到,这可能是由于某些互操作类的实例化/引用不正确,但我没有在我的代码中看到这种情况(或者我没有看到它?)

0 投票
0 回答
73 浏览

c# - 用于 Xamarin 开发的 SHDocvw.dll 的移动等效项

是否有类似 SHDocvw.dll 的移动等效项用于在 Xamarin 中公开 HTML 文档对象模型?是的,我知道你不能在安卓设备上使用 Internet Explorer,这就是我说“喜欢”的原因。

我已经尝试过 HTMLAgilityPack 并且没有任何成功。Windows 窗体中的原始 C# 代码如下所示,效果很好(显然,这不是完整的代码......)。Xamarin 中的 WebView 对象似乎无法用于网络抓取。

我不想使用 xaml 并希望将所有内容都保存在代码中。另外,如果有办法只在内存中使用浏览器,那是我的最佳解决方案。我不想显示浏览器。

0 投票
2 回答
20789 浏览

vba - 如何使用 SHDocVw.InternetExplorer 命令最大化由 VBA 创建的 IE 窗口?

正如标题所说,我正在尝试最大化使用以下命令创建的 Internet Explorer 窗口:

代替:


这是完整的代码:

那么,我该如何实现呢?