问题标签 [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.
excel - MSXML2.XMLHTTP 不工作
我不知道这些对象在幕后发生了什么,但我一直在使用它们并取得了巨大的成功。
和
但是对于一个特定的网页,ie 对象挂起,产生错误,使我的硬盘驱动器颠簸并完全让我感到沮丧。
我喜欢 MSXML2 对象,因为它总是快速且无故障。这个特定网页上的问题是它没有返回正确的信息。似乎它获取了错误的页面,或者它没有获取全部内容。
我的最低要求是获取页面的整个 html——我可以从那里解析。
我的目标是让他们全部获得,回到大约 2001 年,当时他们开始保持逐场比赛的记录。他们正在使用的技术令人不安,即阻止了 msxml2。
有什么建议可以让我朝着正确的方向前进吗?
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 :) ?
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
c# - 使用 SHDocVw DLL 获取 Internet Explorer 流
我使用此代码打开一个网站:
该网站已打开,但我想访问该网页的文档流以访问页面的内容。是否有可能做到这一点?
vb6 - 应使用 ieframe.dll 或 shdocvw.dll 中的哪一个作为依赖项?
如果我正在使用一个WebBrowser
组件,我发现有时编译器会ieframe.dll
为shdocvw.dll
.
如果针对 XP 和 Win 7,应该使用哪个?
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。任何帮助是极大的赞赏。
c# - 如何从跨域iframe中的子文档中获取父文档中的iframe元素?
我有这段代码会做相反的事情:获取给定 iframe 的子文档element
:
我的问题是我该怎么做相反的事情?我试着给孩子这样做,document
但我得到一个 null frameWindow
:
以下是供您参考的所有 GUID:
这是我的IServiceProvider
:
c# - 批量打印 HTML 问题假脱机文件
我正在尝试将 HTML 报告批量打印到我的默认打印机,这是用于自动保存的 PDF Creator 设置。我通过 Internet Explorer 加载了 HTML 文件,然后我将在没有用户提示的情况下打印。
我遇到的问题是,当我的程序循环打印 HTML 文件列表时,它发现某些文档没有假脱机并且没有被打印。我确实在网上读到,这可以通过使用 while 循环和 Application.Dowork() 来解决。当我偶尔执行此操作时,我的所有文档都会打印,这是一个改进,但这只是偶尔而不是确定的修复。
我的问题可能是每个线程在完成处理之前就关闭了吗?
如果是这样,我怎样才能让线程独立运行,以便它们在仍在处理时不会关闭?
下面是我用来将文档打印到默认打印机的代码:
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。
.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 以抑制脚本错误