【发布时间】:2018-05-30 18:43:03
【问题描述】:
我正在使用 c# 和 webbrowser 来抓取网页。
有时,我会遇到“来自网页的消息”弹出错误。
我用:
hwnd = FindWindow("#32770", "Message from webpage");
hwnd = FindWindowEx(hwnd, IntPtr.Zero, "Button", "OK");
SendMessage(hwnd, 0xf5, IntPtr.Zero, IntPtr.Zero);
按确定。但是,当我再次尝试导航时,我会收到网络浏览器仍然繁忙的错误消息。我怎样才能强制它再次免费?
我发现的唯一解决方法是尝试“重新启动”浏览器。我正在执行以下操作:
ie.Dispose();
ie = new System.Windows.Forms.WebBrowser();
这似乎可行,但当我导航时,我得到一个“此页面上的脚本导致 Internet Explorer 运行缓慢”弹出窗口。我仍然可以继续导航,但我注意到加班时我有相当大的内存泄漏。我不确定是我“重新启动”浏览器的方式还是离开弹出窗口的方式。
如果您有办法“释放”浏览器,或者您可以确认重新启动浏览器的正确方法,我们将不胜感激。
【问题讨论】:
-
0xf5 是做什么的?你有一个有效的 OK 按钮句柄吗?
-
是的,我可以按下确定按钮,弹出窗口消失。
-
也许它的网页有问题?看过很多……你能专注于看起来不错的“已知”网页……看看会发生什么?
-
也许,但我的程序应该能够适应有问题的网页。这就是为什么我问是否有办法强制浏览器停止“忙碌”以便我可以导航。或者,如果您可以确认我是否正确地重新启动了浏览器
标签: javascript c# webbrowser-control