Tag: 焦点窃取

在没有聚焦的情况下打开隐藏的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(); 它总是窃取焦点,即使它被隐藏。 我希望它从没有发生任何事情开始,因此用户可以继续处理他们正在做的事情。 谢谢。

如何以编程方式最小化打开的窗口文件夹

如何获取打开的文件夹列表,通过它进行枚举并以编程方式最小化每个文件夹? 有时,当从应用程序中的一个表单跳转到另一个表单时,一些打开的文件夹会从工具中窃取焦点。 防止这种情况对我们的客户来说是高度优先的。 客户是视障人士,因此他们只能通过屏幕阅读器访问机器。 最小化其他窗口(文件夹)根本不是问题,实际上是一个要求。 我试过这个: foreach (Process p in Process.GetProcessesByName(“explorer”)) { p.StartInfo.WindowStyle = ProcessWindowStyle.Minimized; } 正如预期的那样没有好处。 更新 : 从这里的答案,我试过这个: delegate bool EnumThreadDelegate(IntPtr hWnd, IntPtr lParam); [DllImport(“user32.dll”)] static extern bool EnumThreadWindows(int dwThreadId, EnumThreadDelegate lpfn, IntPtr lParam); static IEnumerable EnumerateProcessWindowHandles(int processID) { List handles = new List(); EnumThreadDelegate addWindowHandle = delegate(IntPtr hWnd, IntPtr param) { handles.Add(hWnd); […]