问题标签 [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.
c# - shdocvw 使用 C# 打开带有两个 IE 选项卡的浏览器
我的代码中有一个非常简单的方法,用于打开 IE 浏览器,版本 IE 11。
每次单击该按钮时,IE 浏览器都会打开,但我得到两个选项卡。第一个选项卡是一个空白选项卡,上面没有名称,正文是空白的。
基于在stackoverflow上研究其他问题,我认为我的IE设置是相关的:
- 主页设置为 Google...框中没有多余的行
- “打开新标签页时,打开” - 设置为“新标签页”
- “打开来自其他程序的链接:” - 设置为“当前窗口中的新选项卡。
- 流行音乐拦截器已关闭
我在 Win7 和 Win10 上试过这个片段。
你能告诉我这里缺少什么吗?谢谢。
vb.net - 访问 html 中的元素
我在我的 Vb.Net WinForms 应用程序中使用 SHDocVw.InternetExplorer API 从 Internet Explorer 获取元素。我可以轻松访问父文档和框架元素中的元素,但无法访问“嵌入”容器中的元素。这是示例代码:
这是一个示例html:
示例.html
测试.html
如何使用“嵌入”标签访问 Sample.html 中加载的 Test.html 内的按钮和标签?
编辑 1:
根据我的研究,我可以使用“object”元素的 .contentDocument 属性访问“object”容器内的文档,但同样不适用于“embed”容器。
我可以使用“嵌入”容器上的 getSVGDocument() 属性获取一些 comObject,但无法将其转换为 mshtml.IHTMLDocument2
c# - 如何将参数从 SHDocVw.InternetExplorer 事件传递到 C# 应用程序
我在用着
SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer()
在某些时候,我需要从 Internet Explorer 在我的 C# 应用程序中触发一个事件。我这样做是这样的:
这工作正常,但我需要通过这个事件传递一些参数,我无法弄清楚如何做到这一点。可能有办法从 Internet Explorer 调用 C# 方法吗?请指教。
c# - 找不到引用的组件“SHDocVw”
在新的“构建”服务器上编译解决方案正在抛出
找不到引用的组件“SHDocVw”。
解决方案在其他构建服务器和开发人员机器上构建良好。我可以发誓它在两天前建造得很好。
此服务器的一个显着差异是 Windows 2008 R2。其他构建服务器是 Windows 2012,开发人员机器范围从 Windows 8.1 到 10。
我尝试删除引用并再次添加它(COM 引用 Microsoft Internet Controls),但没有成功。
更多来自错误消息:
无法解析 COM 引用“eab22ac0-30c1-11cf-a7eb-0000c05bae0b”1.1 版。未找到强名称密钥容器。
c# - 使用 SHDocVw 关闭文件夹时访问被拒绝
我尝试使用SHDocVw
. 它不工作:
访问定义。
我以管理员身份运行我的程序。
c# - 尝试通过 C# 中的 InternetExplorer 从 URL 读取内容时失败
我有一个奇怪的行为,使用 InternetExplorer 对象从 http 站点读取信息:
到目前为止我的代码:
此代码适用于某些 Webistes,但对某些 Webistes 无效。对于那些没有的人,它失败了
System.Runtime.InteropServices.COMException
HRESULT E_FAIL
我找到了这些网站的解决方法,但我对此并不满意:
当我打开更多具有相同标题或 URL 的窗口时,我不知道哪一个是我之前打开的那个。
不幸的是,我无法共享无效的 URL,因为无法从我的基础架构外部访问它。
c# - DWebBrowserEvents2 事件 OnQuit 多次触发
我们正在使用 Internet Explorer 对象 ( Interop.SHDocVw, Version=1.1.0.0, Culture=neutral, PublicKeyToken=null
) 在 WPF 应用程序之外打开资源管理器。
我们需要知道资源管理器何时关闭,因此我们处理 OnQuit 事件,但由于未知原因,我们多次收到该事件,具体取决于 URL。
以下 POC 演示了该问题:
c# - 进程延迟的退出事件
我有这个代码:
在这种情况下,退出的事件会立即执行。
如果我们将第一行更改为打开网页而不是空白页面:
在某些机器中,exited 事件不会立即运行,可能需要长达 20 秒。
额外的信息:
如果在延迟期间我们打开任务管理器并强制终止 iexplore 事件被触发,似乎某些外部进程阻止了 iexplore 的关闭。
我们使用反恶意软件工具检查了机器,一切正常。
c# - C# - mshtml 和 SHDocVw 完整文档
我不确定这是否是一个有效的问题,但我很难为这两个 DLL、mshtml和SHDocVw找到合适的文档。
我正在尝试使用这 2 个 DLL 进行一些自动化操作。为此,我必须首先阅读并理解这两个库包含的内容、所有方法、函数等。
但我似乎无法在网上找到任何完整的文档。我尝试在 MSDN 甚至在 Microsoft 中进行检查,但它有些缺乏信息。例如,我找不到任何有关 HTMLInputTextElement 和 IHTMLSelectElement 的信息。
我想在包含有关这两个图书馆的充分/完整信息的网站/书籍上寻求您的帮助。我希望你们能指点我。
vb.net - 使用提交的数据在当前 Web 浏览器控件中打开新窗口
在我的项目中,我使用的是 Web 浏览器控件。我还可以使用以下帮助在同一浏览器控件中处理新窗口,以便回答:
但我面临的问题是,如果我提交的表单在新窗口中打开但不起作用。
我注意到 SHDocVw Newwindow 事件具有 PostData(作为对象)参数,但 webbrowser 控件需要 PostData 作为字节数组。
SHDocVw Newwindow事件参数:
网页浏览器控件导航参数:
As Asked Here is My Code: (但由于它与提到的 SO 答案相同,我认为这没有任何帮助)
所以,我的问题是如何将 postdata 对象转换为 bytearray 以便 webbrowser 控件可以正确处理提交的表单/数据?