我尝试在winform应用程序中的webbrowser控件中通过鼠标钩记录一些互联网活动。很少见到点击链接并且不记录该点击只是因为一切都发生得太快而我的代码在
public void WebBrowser1Document_Click(object sender, HtmlElementEventArgs e)
{
tempHtmlElement = webBrowser1.Document.ActiveElement;
...
方法无法达到目的。在90%的记录发生但有一段时间它传递了webBrowser1_Navigating
事件,因为我说过WebBrowser1Document_Click
只是开始和webBrowser1.Document.ActiveElement
休息。无论我有ActiveElement的变量,这个变量都无法访问某些属性,例如Name。所以我的问题是如何暂停webbrowser1活动直到记录。这是一个STA应用程序。
答案 0 :(得分:1)
假设在Click方法完成之前发生导航,您可以通过棘手的方法暂停。使用全局变量CanNavigate。
bool canNavigate;
public void WebBrowser1Document_Click(object sender, HtmlElementEventArgs e)
{
canNavigate=false;
tempHtmlElement = webBrowser1.Document.ActiveElement;
...
...
//At the End
canNavigate=true;
}
void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
do
{
Application.DoEvents(); Thread.Sleep(100);
} while (!canNavigate);
}