在没有聚焦的情况下打开隐藏的Internet Explorer窗口?

我想打开一个隐藏的Internet Explorer窗口而不会窃取焦点。 我有一个Timer对象,每5分钟打开一次Internet Explorer,检查网站是否有更新。 问题是每次检查更新时,都会从前台的当前应用程序中窃取焦点。 以下是我开始这个过程的方法:

Process m_Proc = new Process(); m_Proc.StartInfo.Arguments = String.Format("{0}{1}", "-nomerge ", browserURL); m_Proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; m_Proc.StartInfo.UseShellExecute = true; m_Proc.StartInfo.CreateNoWindow = true; m_Proc.StartInfo.FileName = String.Format("iexplore.exe"); m_Proc.Start(); 

它总是窃取焦点,即使它被隐藏。 我希望它从没有发生任何事情开始,因此用户可以继续处理他们正在做的事情。 谢谢。

尝试通过其COM接口自动化Internet Explorer,而不是显式创建进程。 这是如何做到的。 只是不要做ie.Visible = true ,它会保持隐藏状态。 完成时调用ie.Quit()

我甚至不确定为什么要打开浏览器来执行此操作,让代码以另一种方式检查网站会不会更容易? 也许是这样的。

  string url = "http://www.google.com"; string result = null; try { WebClient client = new WebClient(); result = client.DownloadString(url); //Store this result and compare it to last stored result for changes. } catch (Exception ex) { // handle error MessageBox.Show(ex.Message); } 

我的C#生锈了,所以你需要仔细检查一下。