C# 打开一个隐藏的Internet Explorer窗口而不获取焦点?
我想打开一个隐藏的Internet Explorer窗口,而不让它窃取焦点。我有一个计时器对象,它每5分钟打开一次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
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对象,这可能吗?