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

excel - MSXML2.XMLHTTP 不工作

我不知道这些对象在幕后发生了什么,但我一直在使用它们并取得了巨大的成功。

但是对于一个特定的网页,ie 对象挂起,产生错误,使我的硬盘驱动器颠簸并完全让我感到沮丧。

我喜欢 MSXML2 对象,因为它总是快速且无故障。这个特定网页上的问题是它没有返回正确的信息。似乎它获取了错误的页面,或者它没有获取全部内容。

我的最低要求是获取页面的整个 html——我可以从那里解析。

这是我试图获取的页面示例: http ://www.nfl.com/gamecenter/2011090800/2011/REG1/saints@packers?icampaign=GC_schedule_rr#menu=highlights&tab=analyze&analyze=playbyplay

我的目标是让他们全部获得,回到大约 2001 年,当时他们开始保持逐场比赛的记录。他们正在使用的技术令人不安,即阻止了 msxml2。

有什么建议可以让我朝着正确的方向前进吗?

0 投票
0 回答
2059 浏览

c# - Handling the SHDocVw Window.closing event to close a form in C#

With a lot of digging I have managed to share session between my 2 forms with the SHDocVw.dll. I have a Main form and a Popup form, each contain a WebBrowser control.

My question is : how can I handle the window.close javascript event to close the popup form ?

I think I have the correct syntax but I can't make it happen.

Main Form (webbrowser Navigator) :

Popup form

I think I have to add something like this to the popup code :

But when I declare the SHDocVw.WebBrowser nativeBrowser it opens a new IE instance instead of binding to the current one.

Can someone help me please :) ?

0 投票
2 回答
2513 浏览

c# - SHDocVw InternetExplorer 打印服务器端失败——COM 异常

我试图通过部署在 IIS 机器上的 WCF 服务从服务器端打印文件。以下代码在 Win 2oo3 机器上完美运行。但是同样的代码抛出了一个 COM 异常。关于这个的任何想法。我猜它与某些权限有关。这是代码

在为 internetexplorer 创建对象时,Com 异常如下所示。

[ERRORLOG] 由于以下错误,检索具有 CLSID {0002DF01-0000-0000-C000-000000000046} 的组件的 COM 类工厂失败:80080005 服务器执行失败(来自 HRESULT 的异常:0x80080005 (CO_E_SERVER_EXEC_FAILURE))。:在 System.RuntimeTypeHandle.CreateInstance(RuntimeType 类型,Boolean publicOnly,Boolean noCheck,Boolean& canBeCached,RuntimeMethodHandleInternal& ctor,Boolean& bNeedSecurityCheck)在 System.RuntimeType.CreateInstanceSlow(Boolean publicOnly,Boolean skipCheckThis,Boolean fillCache)在 System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache) at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type) [/ERRORLOG]

此外,如果我尝试将对象创建为 InternetExplorerMedium。然后它在 2008 年工作,但不在 Win server 2003 中工作。我非常不知道......任何有关的帮助都会有很大帮助。

问候, 帕万 N

0 投票
1 回答
1405 浏览

c# - 使用 SHDocVw DLL 获取 Internet Explorer 流

我使用此代码打开一个网站:

该网站已打开,但我想访问该网页的文档流以访问页面的内容。是否有可能做到这一点?

0 投票
1 回答
2117 浏览

vb6 - 应使用 ieframe.dll 或 shdocvw.dll 中的哪一个作为依赖项?

如果我正在使用一个WebBrowser组件,我发现有时编译器会ieframe.dllshdocvw.dll.

如果针对 XP 和 Win 7,应该使用哪个?

0 投票
1 回答
2546 浏览

c# - 打开一个只有 3 个选项卡的 Internet Explorer Windows

我正在和一位同事一起做一个项目,我们一直在努力解决这个问题。我们的要求是让一个新的 Internet Explorer 浏览器弹出一个网页,然后在其上附加两个选项卡。我们找到了一个可以在我同事的计算机上运行的解决方案,但是当我们在我的计算机和另一个同事的计算机上尝试时,它不起作用。到目前为止我们有什么:

同样,这仅在他的计算机上正常工作。对我来说,当我尝试运行此代码时,它会正确打开 Internet Explorer 浏览器,但即使我使用的是 InternetExplorer 对象,它也会打开 Firefox 中的选项卡。我深入课堂,试图打印出我能找到的任何有用的东西。我的 InternetExplorer 对象中的 name 属性是“Windows Explorer”。我阅读了更多关于 ShellWindows 实际所做的事情,这是有道理的,但这对我没有帮助。这似乎意味着它通过 InternetExplorer 对象而不是 Internet Explorer 打开我的默认浏览器。我的同事将 Chrome 作为默认浏览器,我也得到了不同的结果。我将默认浏览器切换到 Chrome 以查看是否是问题所在,但随后在 Chrome 中打开了两个额外的选项卡。我真正需要的是打开一个带有 3 个选项卡的 Internet Explorer 浏览器,每个选项卡都有自己的 URL。任何帮助是极大的赞赏。

0 投票
1 回答
1293 浏览

c# - 如何从跨域iframe中的子文档中获取父文档中的iframe元素?

我有这段代码会做相反的事情:获取给定 iframe 的子文档element

我的问题是我该怎么做相反的事情?我试着给孩子这样做,document但我得到一个 null frameWindow

以下是供您参考的所有 GUID:

这是我的IServiceProvider

0 投票
1 回答
904 浏览

c# - 批量打印 HTML 问题假脱机文件

我正在尝试将 HTML 报告批量打印到我的默认打印机,这是用于自动保存的 PDF Creator 设置。我通过 Internet Explorer 加载了 HTML 文件,然后我将在没有用户提示的情况下打印。

我遇到的问题是,当我的程序循环打印 HTML 文件列表时,它发现某些文档没有假脱机并且没有被打印。我确实在网上读到,这可以通过使用 while 循环和 Application.Dowork() 来解决。当我偶尔执行此操作时,我的所有文档都会打印,这是一个改进,但这只是偶尔而不是确定的修复。

我的问题可能是每个线程在完成处理之前就关闭了吗?

如果是这样,我怎样才能让线程独立运行,以便它们在仍在处理时不会关闭?

下面是我用来将文档打印到默认打印机的代码:

0 投票
1 回答
1564 浏览

vb.net - 在 Windows 7-64 中强制 SHDocVw.InternetExplorer 32 位而不是 64 位

我正在使用 SHDocVw.InternetExplorer 打开一个 IE 窗口并控制会话。
主要是为了自动转到某个页面、登录、检查某些数据等。

它工作得很好,除了我们现在应该使用这个 Internet Explorer 插件扩展,当我的程序生成窗口时,大多数插件都没有列在 Tools->Manage Add-Ons 下

有什么我可以尝试在至少这个扩展中加载的吗?

编辑: 好的,所以我想我可能已经缩小了正在发生的事情的范围。正常启动时 IE 以 32 位模式启动。

当它使用 SHDocVw 生成时,它会加载 64 位。当我转到开始菜单并启动 Internet Explorer(64 位)时,插件也丢失了。所以现在我需要弄清楚如何在从针对 64 位的程序生成时强制使用 32 位 IE。

0 投票
1 回答
1778 浏览

.net - WebBrowser.Document 属性获取器抛出 UnauthorizedAccessException

http://localhost我们有一个 Windows 窗体应用程序,它在 WebBrowser 控件中(在运行时选择的端口上)托管 Web 应用程序,该控件大部分工作正常。在 webapp 中有一个“帮助”链接,它会弹出一个新窗口,我们通过监听 NewWindow 事件并在另一个窗体/窗口中的另一个 WebBrowser 控件中显示帮助 URL 来处理这个问题,这通常也可以正常工作。

问题是 html 帮助文件正在生成脚本错误,这会导致烦人的弹出错误消息。从浏览器中查看时(通过 IE、Chrome 和 Firefox 确认),开发工具会显示发生的脚本错误,但默认情况下浏览器会抑制它们(没有烦人的弹出窗口)。因此,为了在使用 WebBrowser 控件时抑制错误,我们采用了“禁用 WebBrowser 控件中的 JavaScript 错误”中的方法

旁注:使用 webBrowser.ScriptErrorsSuppressed = true; 的最佳答案方法 实际上抑制了所有我们不想做的弹出窗口,所以我们采用了附加错误事件处理程序的第二种答案方法:

SuppressErrorDialogs 中的 .Document 属性获取器失败如下:

所以错误是从内部引发的IHTMLLocation.GetHref()。我们花了一些时间调查调用时有效的 WebPermission(s),然后才意识到.Net 自己的安全模型并未引发此错误 - 它源自底层 IE 浏览器控件。

我们 webapp 中的所有 URL(包括帮助文件)都位于 localhost 上,所以这个错误真的不是预期的,即我们不希望触发跨站点脚本攻击保护。

==== 更新 ====

这显然是由跨框架脚本安全性引起的。我无法通过顶部发布的代码来解决这个问题,但是对于原始问题有一个替代解决方案(抑制脚本错误),请参阅覆盖 IOleCommandTarget 以抑制脚本错误