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

c# - 使用 chrome 而不是 SHDocVw.InternetExplorer

在我的 VB6 应用程序中,我正在使用SHDocVw.InternetExplorer和浏览网站、填写 texbox、提交等。

那么我怎样才能使用 chrome 作为实例来做同样的事情。我将能够像在 SHDocVw.InternetExplorer 中那样使用所有功能。

请指导我。.NET 解决方案也受到欢迎

0 投票
4 回答
5607 浏览

c# - 如何打开最大化的 Internet Explorer?

我必须使用 C# 打开最大化的 Internet Explorer。我尝试了以下方法:

我可以打开不同的大小,但我找不到如何打开最大化的 IE。我检查了msdn,没有可以最大化的属性。

请给我一些建议。

PS:我正在开发 C# 控制台应用程序、.Net4.5 和 VS2012

0 投票
1 回答
1127 浏览

c# - C# SHDocvw.dll Internetexplorer 总是忙

我正在尝试在 C# 中自动化 IE。我的问题是它总是很忙。

我有一个等待方法

这是我的方法之一

我尝试了方法中的睡眠和等待方法。

我也有切换选项卡或创建新选项卡等的方法。每个方法都是一样的。

你知道这个问题的重点是什么吗?

谢谢!!!

0 投票
0 回答
2087 浏览

c# - 连接到现有的 Internet Explorer 窗口并使用 C# 重用它

我正在开发一个遗留软件,其中有一个按钮,可以打开一个新的 Internet Explorer 窗口并导航到其中的特定地址。浏览器控制器将保存对窗口的引用,以便如果再次按下按钮 - 将使用相同的窗口再次导航到它。

这基本上适用于 SHDocVw.InternetExplorer 对象,我只使用“navigte”方法,它完美地工作......在 Windows XP(IE 6-8)上。

我们的客户希望升级到 Windows 7,似乎 MS 决定在您每次导航到与您以前不同的域时引发“OnQuit”事件来搞砸这段特定的代码(并在过程中增加安全性:))在(因此,如果我使用“Browser = new SHDocVw.InternetExplorer();”打开一个新窗口,而不是使用“Browser.Navigate(“www.google.com”),Browser 对象将被编组。

通读这个问题,似乎我不是唯一一个遇到这个问题的人,建议的解决方案是找到我打开的 IE 窗口并连接到它,所以我有这个功能:

  • Execute.OnUIThread - 我使用 caliburn micro,想确保它不是线程问题
  • config.UrlTemplate - 我要导航到的 URL

这个解决方案有效......有点,唯一的问题是,如果它是我打开的新窗口中的第一个选项卡 - 它无法识别它,如果它是第二个(即使我之后关闭第一个)它确实有效。

在互联网上疯狂搜索了将近一周后,我决定在这里问一下伟大的思想 - 也许你可以弄清楚为什么它只工作了一半,或者我的策略是否有缺陷,我应该尝试不同的方法。

我宁愿不使用 Web 客户端控件,因为我要导航的网站也是第 3 方,并且往往会崩溃很多,如果它在我创建的 Web 客户端中 - 客户端可能会责怪我们的软件,我宁愿避免。

提前致谢!

0 投票
0 回答
1341 浏览

c# - 为什么 ShellWindows 中的 SHDocVw.InternetExplorer 实例计数不同?

目前没有 iexplorer 进程。

当我创建两个 InternetExplorer 实例时,ShellWindows 只给了我一个 HWND。

这是我的代码。

还有一个问题。

如果有两个以上的父 InternetExplorer,每个父级都有多个选项卡,他们是否有自己的 HWND 来识别哪个是哪个,以便我可以处理它。因为当我测试它时,所有的孩子都有相同的父母 HWND。我的意思是,甚至存在父母和孩子吗?

他们有 HWND 之类的吗

No.1 parent - No.1_1 childTab,No.1_2 childTab,No.1_3 childTab

No.2 parent - No.2_1 childTab,No.2_2 childTab,No.2_3 childTab

任何帮助是极大的赞赏。

0 投票
1 回答
781 浏览

c# - SendMessage 不适用于 InternetExplorer 对象

我正在尝试为 InternetExplorer 对象模拟鼠标左键单击,即使 IE 对象是背景窗口也是如此。我使用的系统函数是 SendMessage。下面是相关代码。

我确定我指定的位置会在左键单击时生成一个新的 IE 窗口。但是,使用上面的代码不会发生这种情况。那么,我在这里缺少什么?

更新
操作系统是 Windows 7 专业版。IDE 是 Visual Studio 2013 Pro。

我还尝试添加一个清单并指定 UIAccess="true" per this page。但它没有用。

0 投票
1 回答
555 浏览

image - 如何将 IHTMLImgElement 转换为图像

我正在使用带有 C# 的 SHDocVW.dll 和 MSHTML 使 Internet Explorer 自动化,并且我希望将页面中的图像保存到磁盘(JPEG 格式)。

我无法使用 WebClient 类下载图像;如果我这样做,我最终会下载该站点的登录页面。我也无法打印屏幕,因为在此过程中浏览器必须保持不可见,在后台运行。

我试图做以下事情:

这无济于事。我无法从剪贴板中提取任何内容。我发现的每个解决方案都对我不起作用。

0 投票
4 回答
9324 浏览

c# - IE.可见 = 假;但它实际上显示了?C#

我正在尝试以隐形方式导航,尝试过这个

有效,但是,它实际上显示了 IE 窗口。隐藏 IE 窗口的最佳方法是什么?

0 投票
1 回答
1713 浏览

vb.net - 如何获取 HTML 元素以及元素文本中用户点击的位置

使用 Internet Explorer 我想获得一个人点击文本的位置。3 到 4 个字符的错误是可以的。文本不可编辑,通常位于 span 元素中。

我知道我可以为 HTMLDocument 设置一个单击事件侦听器,但是我并不总是拥有 HTMLDocument 对象,因此可能会错过该事件。

我尝试获取 IHTMLSelectionObject,然后使用 IHTMLTxtRange 创建文本范围,但是当仅单击网页而不是选择至少 1 个字符时,IHTMLTxtRange 具有 HTMLBody 的父级而不是单击的元素的父级.

HTMLDocument.activeElement 也不可靠。在我的测试中,它实际上从未返回单击的元素,它通常返回元素的主要父级元素的某个位置。

使用 MSHTML 是否有另一种方法来实现这一点?

我也尝试过使用 WIN API GetCursorPos 但是我不知道如何处理这个位置,我不知道如何将它转换为实际元素。

编辑: 我还想到了一个有趣的想法。当我需要知道有光标的元素时,我在整个文档上设置了 mouseDown 或 click 事件。然后触发我自己的点击并捕捉事件。在事件的 IHTMLEventObj 中有一个 FromElement,我希望它会告诉我光标在哪里。mouseDown 和 click 事件似乎总是无关紧要。对我来说,至少这个对象仅用于例如鼠标悬停事件。

以下是我至少选择了一个角色时所拥有的。

0 投票
0 回答
223 浏览

c# - 从 SHDocVw.InternetExplorer 转换为处理

是否可以从 SHDocVw.InternetExplorer 转换为处理对象?我试着像这样投射,但没有奏效: