问题标签 [axwebbrowser]

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 回答
696 浏览

c# - AxWebbrowser 事件处理程序不再工作

由于某种原因,我的程序上的事件处理程序不再工作。我之前运行过几次相同的代码。

没有理由为什么这不应该起作用,但这正是正在发生的事情。我尝试制作其他事件,但它们也不起作用。任何投入将不胜感激。

0 投票
1 回答
2692 浏览

c# - 在 WinForms 应用程序中使用 aXWebBrowser 控件分离会话?

如何从单个 winforms 应用程序进程以编程方式控制多个浏览器(aXWebBrowser 控件),针对同一个远程网站,但每个浏览器与远程站点处于其自己的会话范围内?

目标 - 构建一个自动使用网站的应用程序。目标是让应用程序完成最多 5 个用户在同一网站上与浏览器交互的工作。

明显的挑战 - 每个浏览器实例共享远程网站发送给它的“会话”数据。结果是各种浏览器无法像实际的多个人类用户那样行事。无论实例化多少个不同的 aXWebBrowser 控件,每个控件都会丢失其会话上下文,并共享由上一个/最新/最近实例化的浏览器建立的会话上下文。换句话说,最后启动的控件破坏了它之前的任何控件的已建立会话上下文。

已经尝试过 - 将以下注册表项之一添加到“hkcu\software\microsoft\internet explorer\main”:TabProcGrowth=DWORD:0、FrameMerging=DWORD:0、SessionMerging=DWORD:0。当从我的桌面图标(在应用程序外)启动 IE8 时,它工作正常,IE8 的行为符合预期。但是,在运行应用程序时,使用 axWebBrowser 控件确实有效,注册表设置似乎对 axWebBrowser 控件没有影响。其他在应用程序之外查看异常行为的方法包括:单击 IE8 文件菜单中的“新建会话”,并使用 -nomerge 启动 iexplore.exe。这些在应用程序中不起作用,因为 axWebBrowser 控件使用 Wininet 进行通信。

约束 - 已经使用 aXWebBrowser 控件(Internet Explorer ActiveX 可自动化 Web 浏览器)编写并运行了大量代码,因此理想的解决方案不需要使用新控件重新编写代码。- 找到解决方案后,应用程序将向工作站用户显示浏览器窗口。- 一个 winforms 应用程序 (.NET 2.0) 托管控件 - 浏览器都针对同一个远程网站。

0 投票
1 回答
517 浏览

html - 从 Windows Mobile 中的 PIE Web 浏览器获取加载的网页 HTML 源文档

我们需要在 windows mobile 的 PIE 网络浏览器上加载网页 HTML 源文档。我们尝试过的源代码如下:

我们发现在 Windows Mobile 版本的 Web 浏览器控件 (PIE) 中缺少获取 innerHTML() 方法。

现在我们应该如何从 PIE 控件中获取 HTML 文档。他们是一个可能的解决方案吗?

谢谢,拉马南德

0 投票
4 回答
3909 浏览

c# - 如何在控制台应用程序中使用 AxWebBrowser

我想在控制台应用程序上使用 AxWebBrowser,但它给了我以下异常:

引发了“System.Windows.Forms.AxHost+InvalidActiveXStateException”类型的异常。

任何人请通过任何示例代码帮助我在控制台应用程序 c# 中使用 AxWebBrowser 没有任何异常...

0 投票
1 回答
160 浏览

c# - 如何在 C# 中获取 AxWebBrowser 实例的屏幕截图?

我在 win 表单应用程序中创建 AxWebBrowser 的实例,因为我需要它来呈现 Flash。如何截取它在 C# 中呈现的页面的屏幕截图?

0 投票
2 回答
696 浏览

.net - AxWebBrowser.Navigate2 问题

我正在使用 AxWebBrowser 对象来呈现 html/flash。我已经在表单中添加了这个对象。在使用 AxWebBrowser.Navigate2 渲染到表单时,我注意到一个奇怪的问题。但它并不一致并且间歇性地发生(4/10)。

显示的内容有时会完全空白,即白屏。有时只有边缘是白色的,其余的渲染内容都很好。

我无法理解这里的问题。我尝试了以下方法 - 使用“about:blank”调用 Navigate2,然后使用实际 URL - 调用 Navigate2 两次。- 使用 Navigate 而不是 Naviagte2。

但问题仍然存在。

任何帮助在这里表示赞赏。

提前致谢。

0 投票
1 回答
1272 浏览

c# - 如何等待 axWebBrowser 完成加载?

axWebBrowser用来做一些网络自动化。当系统触发NewWindow2事件时,它无法跟踪新窗口中的 HTML 元素。调试后,我注意到虽然新窗口还没有完成加载,但axWebBrowser1.ReadyState等于。ReadyState_Complete

如何等待新窗口完成加载,以便检测其中的 HTML 元素?

0 投票
0 回答
510 浏览

c# - 在 C# 中的 axWebBrowser 控件中自动执行 FileDownload 的问题

我正在做一个项目,试图在我的公司抓取一个 Intranet 站点,因为现在有一些限制阻止我在服务器端获得帮助。我正在编写一个使用 axWebBrowser 控件导航到页面的 C# 客户端。进入页面后,有一个按钮控件调用 .aspx 页面,该页面从 sql 查询创建 csv 文件的动态下载。在正常情况下,这会打开一个 FileDownload 对话框来保存 csv。

我发现人们使用 BeforeNavigate2 事件捕获 e.uRL,然后使用 FileDownload 事件覆盖对话框并使用 WebClient 检索文件的示例。除了 e.uRL 包含 .aspx 脚本的 url 而不是动态创建的 .csv 文件之外,此方法对我来说可以正常工作。

我读到的另一个建议是从 HTML 请求中解析文件路径的标题,但是当我这样做时,我在标题上抛出了 401 Unauthorized Access 异常。

最后,如果可能的话,我更愿意避免这种情况,我考虑过使用 win32 api 调用并使用 FindWindow 和 SendMessage 浏览默认文件对话框,但我真的不想创建一个等待顺序的多线程应用程序去做这个。我找不到 FileDownload 对话框打开时触发的事件,只有在打开之前或关闭之后触发的事件。

您可能有的任何想法都会很棒,如果它澄清了我的解释,我可以开始在此处粘贴我到目前为止所拥有的代码。

0 投票
1 回答
490 浏览

c# - 如何保存网页/图像

我正在使用以下项目,因为它能够以编程方式填写表格和单击按钮:http: //www.codeproject.com/Articles/5452/Microsoft-Web-Browser-Automation-using-C

我可以以编程方式浏览互联网,但无法保存网页。例如,我尝试将图像保存在我的域中。我打开图像但是我无法以编程方式保存它:

有截图功能,但我不想使用它。任何帮助,将不胜感激。

0 投票
3 回答
1888 浏览

c# - 我一定是个异端,因为我想要一个同时具有 NewWindow2 和 GetElementsByTagName 的 C# 浏览器

显然,你不能一边吃蛋糕一边吃。

我目前正在System.Windows.Forms.WebBrowser我的应用程序中使用。该程序目前依赖于使用该GetElementsByTagName功能。我用它来收集某种类型的所有元素(“input”或“textarea”),所以我可以对它们进行排序并返回特定元素的值。这是该函数的代码(我的 WebBrowser 名为 web1):

(注意点:我需要拉取的网页是在一个框架中,根据情况,元素的标识名称会在 name 或 ref 属性中)

所有这些对System.Windows.Forms.WebBrowser.

但它无法做的是重定向新窗口的打开以保留在应用程序中。在新窗口中打开的任何内容都会发送到用户的默认浏览器,从而丢失会话。此功能可以通过没有的NewWindow2事件轻松修复。System.Windows.Forms.WebBrowser

现在请原谅我对它的缺席感到震惊。我最近放弃了 VB6 并转向 C#(是的 VB6,显然我是在一块石头下工作的),而在 VB6 中,它WebBrowser同时拥有了GetElementsByTagName函数和NewWindow2事件。

AxSHDocVw.WebBrowser一个NewWindow2事件。如果能帮助我将新窗口路由到我需要它们的地方,我会非常高兴。执行此操作的代码WebBrowser是(frmNewWindow 是一个简单的表单,仅包含另一个WebBrowser名为 web2(Dock 设置为 Fill)):

我无法自己制作一种方法来复制该功能与平淡无奇的常规 NewWindow 事件。

我也无法弄清楚如何FetchValue使用AxSHDocVw.WebBrowser. 它似乎以完全不同的方式处理事情,我所有关于如何做事的知识都是无用的。

我知道我是一个病态的、扭曲的人,因为在一个应用程序中使用这两个东西的奇怪幻想。但是你能找到帮助这个愚蠢的理想主义者的心吗?