如何使用System.Windows.Controls.WebBrowser而不显示它
本文关键字:显示 WebBrowser Controls 何使用 System Windows | 更新日期: 2023-09-27 18:12:14
我需要少看的网页浏览器与一些网页进行交互(例如输入文本,点击一些按钮,然后阅读一些DIV
元素)。我如何在WPF
中完成它?我尝试使用System.Windows.Controls.WebBrowser
,但显然它必须渲染与交互:
var b = new WebBrowser();
b.LoadCompleted += (sender, args) =>
{
// I never get here...
Trace.WriteLine(args.Content != null ? "Success" : "Failure");
};
b.Navigate("https://www.google.com");
如何以非视觉方式使用它?还是有更好的选择?
WPF WebBrowser
需要一个带有Win32窗口句柄的父窗口。相反,您可以使用WinForms WebBrowser
版本,它可以在没有父窗口的情况下存在。在项目中只引用System.Windows.Forms.dll
程序集。在内部,这两个版本都包装了WebBrowser ActiveX控件。
我张贴了一些如何做到这一点的例子。请注意,它们中的大多数是控制台应用程序,因此它们创建了一个辅助STA线程来运行WebBrowser
的消息循环。在WPF中,你可以在主UI线程上使用WinForms WebBrowser
。
如果您不需要执行任何java脚本,您可以使用WebRequest
(在MSDN页面的底部有一个例子…)