【发布时间】:2014-08-08 15:53:55
【问题描述】:
我正在编写一个程序,在关闭之前搜索某些网页。我希望我的程序使用默认浏览器打开一个新窗口。我可以让我的程序关注最新的窗口实例,然后在完成后关闭该实例。
我整天都在盯着 WebBrowser.Navigate 和 System.Diagnostics.Process.Start(target) ,但我找不到它们的最佳位置。
WebBrowser.Navigate 总是打开 IE,我一直在查看 API,但找不到更改所用程序的方法。有没有其他人看到我看不到的东西?有没有办法改变使用的应用程序?
System.Diagnostics.Process.Start(target) 在新选项卡中打开,而不是像导航那样的新窗口。然而,API 中的所有重载函数都没有办法说“创建一个新实例或窗口”。
这是我的问题,他们都有我想要的部分,但我不知道如何获得我需要的部分。
非常感谢您的帮助。我一直在寻找几个小时,我似乎可以找到一个解决方案。
Jester 的代码示例:
Process defaultbrowser = new Process();
defaultbrowser.StartInfo.CreateNoWindow = true;
defaultbrowser = Process.Start(target);
int waitTime = Convert.ToInt32(numericUpDown2.Value);
System.Threading.Thread.Sleep(waitTime*1000);
defaultbrowser.CloseMainWindow();
defaultbrowser.Close();
此外,我的 Close() 函数导致运行时错误:
System.NullReferenceException:对象引用未设置为实例 一个对象。
这似乎很愚蠢,因为上面的代码也让我认为我的默认浏览器是一个进程的实例,然后应该能够调用非静态函数“close()”。
【问题讨论】: