C# 打开一个隐藏的Internet Explorer窗口而不获取焦点?

C# 打开一个隐藏的Internet Explorer窗口而不获取焦点?,c#,internet-explorer,background,focus,focus-stealing,C#,Internet Explorer,Background,Focus,Focus Stealing,我想打开一个隐藏的Internet Explorer窗口,而不让它窃取焦点。我有一个计时器对象,它每5分钟打开一次Internet Explorer来检查网站的更新。问题是每次检查更新时,它都会从前台的当前应用程序中窃取焦点。以下是我如何开始这个过程: Process m_Proc = new Process(); m_Proc.StartInfo.Arguments = String.Format("{0}{1}", "-nomerge ", browserUR

我想打开一个隐藏的Internet Explorer窗口,而不让它窃取焦点。我有一个计时器对象,它每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#生锈了,所以你需要仔细检查一下

谢谢,崔莫。我需要使用IE的API在浏览器中自动单击或填写表单。对于WebClient对象,这可能吗?