问题标签 [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 回答
2592 浏览

c# - 如何使用 SHDocVw.InternetExplorer.Navigate 在 POST 中发送 cookie?

问题:在我们的组织中,我们有一个用 c#/.Net2 编写的本地单点登录应用程序,它已经运行了多年。我们最近发现该应用程序无法与 Outlook Web Access 2010 一起使用。一些网络搜索出现了来自 SSO 供应商(Novell KBCitrix KB)的几篇文章,这些文章提到了这个问题。OWA2010 在提交时执行一个 javascript,添加一个名为“PBack=0”的 cookie,如果未包含在帖子中,将导致身份验证失败。

问题:如何在 SHDocVw.InternetExplorer 的 Navigate 方法中包含 cookie?

0 投票
1 回答
145 浏览

c# - 不能多次使用“应用”或“调用”功能

我正在使用 SHDocVw DLL 从 C# 打开和操作 Internet Explorer 实例。我需要激活几个文本框的 onkeyup 事件。这是我使用的代码:

这适用于对“应用”的第一次调用,但第二次调用会产生错误:“System.MissingMemberException:调用应用时出错。”。如果我使用“调用”而不是“应用”,也会出现此问题。但是,如果我将其中一个事件调用函数从“应用”更改为“调用”,它就会起作用 - 但如果我尝试在我的程序的同一实例中再次调用此代码,它会引发相同的异常。简而言之-除非我重新启动程序,否则我不能多次使用“应用”或“呼叫”。

此问题仅在 Windows XP+IE8 中出现。如果我在 Windows7+IE9 中尝试,我可以根据需要多次使用“应用”/“调用”。

我可以做些什么来让我多次使用“apply”/“call”,或者以任何其他方式调用事件?

0 投票
2 回答
2254 浏览

c# - 如何单击此 javascript 按钮?

在我试图登录的网页中间,我有以下代码

我想执行 SubmitAction() 代码,它将获取我的凭据并让我登录。使用 .NET 中的 WebBrowser 工作正常,因为我可以使用“invokescript”。我不能用 shdocvw 做到这一点。如何单击或以其他方式使此操作发生,尤其是因为该元素没有 id 或标签?

这是我的功能目前的样子:

0 投票
2 回答
2570 浏览

c# - IE 8 的 InternetExplorer COM 对象忽略了活动选项卡

这是在 .net 3.5 winform 上运行的 Web 单点登录代码。只要 ie8 只打开一个选项卡,代码对于 ie6 或 ie8 运行良好。问题是,如果用户打开一个新选项卡(选项卡 2,3 等)并导航到网站(组织内部的 Web 表单),将执行以下代码,但即 COM 自动化对象将返回 HTMLDocument对于第一个选项卡(选项卡 1),即使选项卡 2 是活动选项卡。我在任何地方的 InternetExplorer 或 HTMLDocument 类中都找不到任何 IE 选项卡引用。实际上,在 IE COM 自动化文档中几乎没有 IE 标签相关的文档。

0 投票
2 回答
4419 浏览

vb.net - 使用 vb 表单控制/访问已打开的浏览器

有没有办法让桌面 vb 应用程序控制已经打开的浏览器窗口?例如,让它鼠标单击窗口中的某些坐标或检查窗口是否包含某些元素。

我已经研究过使用 Microsoft Internet Controls(shdocvw) 和 MSHTML(IHTMLDocument2),但我正在努力研究如何访问浏览器窗口的元素(例如 body.innnerHTML)。

0 投票
1 回答
4240 浏览

vb.net - SHDocVw.InternetExplorer 在 shellWindows 中返回太多对象

即使我只打开一个浏览器窗口(没有选项卡)并且只运行一个 iexplore.exe 进程,以下代码行也会返回几个 InternetExplorer 对象。如何只获取打开的浏览器窗口对象?

For Each ie As SHDocVw.InternetExplorer In shellWindows

0 投票
1 回答
4642 浏览

vb.net - ShowWindow 不会设置焦点或最大化

下面的代码不会将焦点设置到我需要的 IE 窗口,也不会像预期的那样最大化它。

0 投票
0 回答
219 浏览

vb.net - 确定 IE 窗口何时显示来自桌面应用程序的对话框

我正在尝试确定选定的浏览器窗口是否显示对话框。我正在使用 shdocvw.internetexplorer 对象来抓取浏览器并获取浏览器的特定元素。我无法确定是否正在显示对话框。

我也看过使用 System.Windows.Automation 但不知道如何在 VB 中设置树然后查找对话框

0 投票
0 回答
1720 浏览

.net - 访问 .NET WebBrowser (SHDocVw) 时出现 COMException

以下异常的原因是什么?

System.Runtime.InteropServices.COMException (0x800706BA):RPC 服务器不可用。(来自 HRESULT 的异常:0x800706BA)

它发生在我进行 COM 调用时,试图在运行 c# 代码的 Windows XP 机器中操作 InternetExplorer。当我尝试读取 .IsBusy 之类的属性时,它会引发。

异常消息:无法转换类型为“System.__ComObject”接口类型“SHDocVw.IWebBrowser2”的 COM 对象。此操作失败,因为 IID 为“{-D30C1661 CDAF-11D0-8A3E-00C04FC9E26E}”的接口的 COM 组件上的 QueryInterface 调用因以下错误而失败:RPC 服务器不可用。(来自 HRESULT 的异常:0x800706BA)

0 投票
2 回答
3302 浏览

c# - 在 WebBrowser 的另一个域上的 iFrame 中获取文本的任何解决方法?

您可能首先会认为这是不可能的,因为 XSS 限制。但我正在尝试从托管 a 的应用程序访问此内容WebBrowser,而不是从站点中的 javascript 代码访问此内容。

我理解不可能也不应该通过非黑客手段从 javascript 访问此内容,因为这将是一个很大的安全问题。但是从托管WebBrowser. 如果我想强化我的应用程序用户的 Facebook 信息,我可以在其中Navigate("facebook.com")做任何我想做的事情。这是一个托管一个WebBrowser,而不是网页的应用程序。

此外,如果您使用 Google Chrome 访问任何包含 iFrame 的网页,该 iFrame 的来源位于另一个域中,然后右键单击其内容并单击“检查元素”,它将向您显示内容。更简单的是,如果您导航到另一个域中包含 iFrame 的任何网页,您将看到其内容。如果您可以在 上看到它WebBrowser,那么您应该能够以编程方式访问它,因为它必须位于内存中的某个位置。

有什么办法,不是来自 DOM 对象,因为它们似乎基于与 javascript 相同的引擎,因此受到 XSS 限制的限制,而是来自一些更底层的对象,例如MSHTMLor SHDocVw,来访问此文本?