WebBrowser DocumentCompleted在我的情况下是无用的
首先,我修复了WebBrowser,现在我以Windows表单正确看到页面.我在这个我在形式的构造函数中具有: webBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted); 然后事件处理程序 public void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { txtLoad.Text = (Convert.ToInt32((txtLoad.Text)) + 1).ToString(); var webBrowser = sender as WebBrowser; webBrowser.Document.GetElementById("gw
132 2024-04-26
编程技术问答社区
在WebBrowser中接受本地对话
我有以下代码 void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (current_state == "request_4") { webBrowser1.Invoke(new Action(() => webBrowser1.ScriptErrorsSuppressed = true)); webBrowser1.Invoke(new Action(() => webBrowser1.Refresh(WebBrowserRefreshOption.Completely))); InjectAlertBlocker(); } } private void InjectAlertBlocker() { HtmlElement head = webBrowser1.Doc
0 2024-04-26
编程技术问答社区
在一个循环中触发WebBrowser.DocumentCompleted事件
我有一个简单的应用程序,我正在开发,需要通过将每个循环中的webbrowsers导航功能传递给webbrowsers的URL列表.我希望在每次导航函数的每次呼叫之后看到文档完成的事件启动,但似乎只有在整个表单完成加载后才触发 - 循环已经完成. 我想我在这里错过了一些基本的东西,但是一些帮助和建议很棒! 谢谢! 这是我正在尝试的代码示例... 这个foreach循环运行n我正在使用的Winforms页面的表单加载事件... int id = 0; foreach (DataRow row in quals.Rows) { URN = row["LAIM_REF"].ToString(); string URN_formated = URN.Replace("/", "_"); string URL = "http://URL_I_
0 2024-04-26
编程技术问答社区
无法在WebBrowser中以编程方式设置textBox控件的值
我试图以编程为编程的值将值设置为Web浏览器中的文本框,但它引发了Null例外. 这是代码,我尝试了: - webbrowser1.document.getElementbyId(" field-summary").innertext =" something"; webbrowser1.document.getElementById(" field-summary").setAttribute(" value"," sometsing"); 我试图通过使用快速手表来找到该元素,并且在那里,但是我无法设置一个值. 特此,我也附上了手表的快照. 这是错误,我遇到了. type" system.nullReferenceException"类型的第一个机会例外发生在timesheet.exe中 MSCORLIB.dll 中出现了第一个机会. 我的问题是,我试图为Innertext设定价值,而我没有对Innertext进行任何操纵.但仍然在投掷错误
14 2024-04-26
编程技术问答社区
自定义WebBrowser(winforms)代码的致命错误
在CustomWebBrowser(Winforms)代码上获得致命例外. " 运行时遇到了致命的错误.该错误的地址在螺纹0xF94上位于0x6C9A60C6.错误代码为0xC0000005.此错误可能是CLR中的错误,也可能是用户代码的不安全或不可验证的部分中的错误.此错误的常见来源包括com-Interop或pinvoke的用户编制错误,这可能会损坏堆栈." " 这在具有 .NET Framework 4.5 的机器上工作正常,但是在具有 .NET Framework 4.0 // constructor public AutoCompleteWebBrowserSite(WebBrowser host) : base(host) { // get the CCW object for this _unkOuter = Marshal.GetIUnknownForObject(this);
14 2024-04-26
编程技术问答社区
C# WebBrowser向Flash对象发送鼠标点击事件
我一直在阅读,但似乎没有找到这个问题的答案.目的是:我在Windows表单项目中有一个WebBrowser.加载了一个HTML页面,在该HTML页面中有一个闪存对象.我的目标是将鼠标单击发送到该闪存对象的(x,y)位置. (所需的)必需品 带有Windows表单可执行文件的窗口不需要活动才能使此工作 不得捕获鼠标 相对于Flash对象或网页发送基于坐标(X,Y)的鼠标单击 示例 想象我在Webbrowser中打开了任何塔式防御游戏.我想模拟点击购买并放置新塔.在Proccess期间,用户不得放松对鼠标的控制.如果在Pixel(x,y)=(30,50)是一个按钮,我想单击该按钮,我只能打电话WebBrowser.simulateLeftClick(30, 50). . 解决方案 [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)] static extern IntP
10 2024-04-26
编程技术问答社区
是否有可能从另一个c#控制台应用程序对WinForm进行控制?
我2天大的.NET C#编码器试图控制 Projecta -winform projectb -c#Console App. 基本上,我正在使用WATIN在Projecta中的WebBrowser Control中自动化测试. 当我运行projectb时,执行winformwithwebbrowsertest.exe时,带有webbrowser的winform显示.但是随后它无法访问form1.如何从ProjectB访问WebBrowser控件? 错误: System.Runtime.IteropServices.InvalidComObjectException COM object that has been separated from its underlying RCW cannot be used projecta winform :( winformwithwebbrowsertest.exe) namespace WindowsForms
8 2024-04-26
编程技术问答社区
反编译的HtmlDocument'的InvokeScript不工作
这是我使用ILSPY的代码: public static object InvokeScript(this IHTMLDocument2 document, string scriptName, object[] args = null) { object result = null; UnsafeNativeMethods.tagDISPPARAMS tagDISPPARAMS = new UnsafeNativeMethods.tagDISPPARAMS(); tagDISPPARAMS.rgvarg = IntPtr.Zero; try { UnsafeNativeMethods.IDispatch dispatch = ((IHTMLDocument)document).Script as UnsafeNativeMethods.IDispatch; if (dispatch != null)
2 2024-04-26
编程技术问答社区
WebBrowser ID访问--不是在DocumentText中,而是在页面源代码中
我正在使用WebBrowser对象,用于Windows表单.NET Framework 4.5应用程序上的Web自动化目的.在特定页面中,即使我从实际浏览器打开查看页面源时,我也无法在WebBrowser.DocumentText中看到ID. 这是我总是用来在页面内获取HtmlElement的代码. var attack = wb.Document.GetElementById("target_attack"); 总结一下如何检索不在documentText内部而是在页面源内的ID? 编辑:这就是页面源数据中的样子.只需按 conrol + f ,然后搜索名为troop_confirm_go的ID:
14 2024-04-26
编程技术问答社区
如何在webbrowser WPF的顶部以弹出窗口的形式打开用户控件
层次结构如下 现在,我想将另一个孩子添加到网格中,该将显示为弹出窗口.这在任何地方都起作用,但是当我们在网格中有一个小时候有一个 webbrowser 时,它就无法正常工作. 解决方案 不幸的是,WPF中的WebBrowser控制不可能. WebBrowser控制您使用的不是实际的WPF控件.它只是包装的Winforms WebControl.它不可能在其顶部显示WPF内容. 类似的问题,因此您可以在哪里看到解决方法: 有没有办法在WPF WebBrowser控件顶部渲染WPF控制? 通过Web浏览器进行WPF控制/p>
4 2024-04-26
编程技术问答社区
WebBrowser控件的等待,直到文档完成的扩展方法
我正在为WebBrowser控件创建一个扩展方法,其目的是等待页面完成完全加载之前. 通过完全加载,我的意思是,在上次DocumentCompleted事件之后必须经过一秒钟.这是为了说明页面加载期间触发多个事件的页面(这是当前影响我的应用程序的东西). 我已经写了当前的方法,但我觉得可以改进:当可能没有必要时,它会返回一项任务,并且遇到了一个问题,如果应用程序关闭,则会抛出例外当它在等待页面加载时. public static Task WaitLoad(this WebBrowser webBrowser, int wait) { var timerInternalWait = new Timer {Interval = 1000, Tag = "Internal"}; var timerMaxWait = new Timer {Interval = wait}; var tcs = new
2 2024-04-26
编程技术问答社区
Webbrowser 控件 document_completed 多次发生火灾
document_complete的事件多次发射.这还不是那么糟糕.但是我要导航的URL永远不会完全加载.它被解雇了2/3次. 这是我的document_completed事件: private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { if (e.Url.AbsolutePath != this.wbrowser.Url.AbsolutePath) return; else string doctext = this.wbrowser.DocumentText; } 我在做什么错? 解决方案 您将获得一个DocumentCompleted每个框架/iframe的事件,这就是为什么有几个事件.如果您没有得到最后一个,那是因为某些资源仍在加载或悬挂.它可能是图像,脚本文件或一些i
4 2024-04-26
编程技术问答社区
Webbrowser控制片删除屏幕的低25%
这就是我的代码.我已经尝试将WindowState分配移至Form1_Load过程,但这没有任何区别. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace TestApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); WindowState = FormWindowState.Maxim
2 2024-04-26
编程技术问答社区
WebBrowser.Navigate只是... 是不是
我有此代码: private void goButton_Click(object sender, EventArgs e) { web.Navigate(loginURL.Text + "/auth/login"); } 我有浏览器显示,并且只是没有导航...它没有导航等. URL有效. 解决方案 // Navigates to the given URL if it is valid. private void Navigate(String address) { if (String.IsNullOrEmpty(address)) return; if (address.Equals("about:blank")) return; if (!address.StartsWith("http://") && !address.StartsWith("https://")) { address = "http://" + address; } try {
2 2024-04-26
编程技术问答社区
我是否能够告诉托管的Internet Explorer网络浏览器控件总是绕过代理设置?
以下方案: 拥有托管的IE Web浏览器控件和应用程序内Web服务器(例如 Web服务器在(例如) 现在,我们有一个客户在IE选项中配置的代理服务器,还检查了"本地地址上的旁路代理". 不幸的是,托管的IE Web浏览器控件仍然使用代理设置,即使对于本地URL http:////127.0. 0.1:14284 . 我的问题是: 我能以某种方式告诉我的托管Web浏览器始终直接致电我托管的Web服务器, 都可以通过代理? (我找到了这个线程,但仍然不确定如何将其应用于我的问题) 解决方案 我认为您必须进行一些互动,因为文档说您可以使用 interneteToption 函数.有很多旗帜可以传递到此函数您需要Internet_option_proxy或Internet_option_per_connection_option,也有一个我希望我对您有所帮助:)
14 2024-04-26
编程技术问答社区
无法通过WPF WebBrowser控件的InvokeScript改变VIDEO标签的大小
我做非常简单的事情:我需要通过WPF WebBrowser Control的Indokescript更改视频标签大小. 所以它显示"你好",但大小根本不会改变. 注意:如果我直接打开此页面,则任何浏览器的尺寸都可以更改尺寸. private void btSize_Click(object sender, RoutedEventArgs e) { wb.InvokeScript("SetVideoSize"); } function SetVideoSize() { try { document.getElementById("player1").style.height = '400px'; document.getElementById("player1").style.width = '400px'; alert('Hello2');
2 2024-04-26
编程技术问答社区
C#/WPF:与网络浏览器控件的互动?
是否可以通过使用WPF浏览器控件实时与本地或远程页面的源代码进行交互. 一个简单的示例,说明用户可以单击一个可以向所选文本进行大胆的按钮.有点像Wysiwyg HTML编辑器,但使用浏览器控件. 是否可以使用与JavaScript相同的功率与这样的源代码进行交互.是否必须设置一个系统来解析所选网页,然后修改其代码,然后重新打开浏览器控件中的新代码以模拟实时编辑的体验? 谢谢 解决方案 您可以通过WebBrowser控件具有完整的DOM访问权限,因此答案是肯定的.但是,WebBrowser控件不是WPF控件,而是Winforms控件,为了使用它,您必须使用WPF Winforms容器控件.
2 2024-04-26
编程技术问答社区
通过DocumentText与Url在Forms.WebBrowser控件中设置内容的区别
如果我生成一些HTML并将其放在字符串中,然后说: myWebBrowser.DocumentText = string; 它似乎工作正常,除了没有图像加载(我得到损坏的图像图). 但是,如果我将字符串写入文件,然后说: myWebBrowser.Url = new Uri("file://myfile.html"); 一切正常. 我的问题是,这里的封面上发生了什么?我在两种情况下都验证了图像的路径(通过rclick-> View源)是相同的,并且所有图像确实存在. 在这两种情况下,HTML都完全相同. 任何可以透露的光线都将不胜感激.谢谢! 解决方案 文档文本中的URL很可能相对于您所在的页面.话虽如此,当您保存到文件时,URL是绝对的.您可能需要在标记中添加 标签,以使该图像在Web浏览器中可见. WebBrowser控件将这些相对图像解析到其位置并相应显示.
2 2024-04-26
编程技术问答社区