我有一个 WPF 应用程序,我需要使用浏览器应用程序。我正在使用 Process.Start({url}) 方法来执行此操作。
但是,如果 url 已经显示在浏览器中,我不想打开另一个浏览器窗口或选项卡;我想导航到已经打开的浏览器/选项卡。
这有可能吗?
您可以使用以下方法枚举打开的 IE 窗口:
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindows();
string filename;
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals("iexplore"))
{
try
{
Uri test = new Uri(ie.LocationURL);
}
catch
{
}
}
}
您需要添加对 SHDocVw COM 组件的引用。
此外,如果您使用的是 IE 以外的浏览器,这将不起作用。
另一种方法是使用 GeckoFX https://bitbucket.org/geckofx之类的东西或带有 WebBrowser 控件的单独 winform 应用程序,而不是使用 Process.Start