我有一些相当简单的代码来使用Process对象打开文件:
var proc = new Process();
proc.StartInfo.FileName = attachmentPath;
proc.StartInfo.UseShellExecute = true;
proc.Start();
每隔一段时间,从此过程打开的窗口将在我当前打开的所有窗口后面打开。我没有看到为什么会发生这种情况的任何模式或一致性。有没有人知道为什么会这样,或者我如何解决它?谢谢!
答案 0 :(得分:1)
Windows不鼓励应用程序暂时关注焦点;周围的规则并没有真正记录下来,大概是为了防止应用程序绕过它们。
但是,你可以尝试一下:
var proc = new Process();
proc.StartInfo.FileName = attachmentPath;
proc.StartInfo.UseShellExecute = true;
proc.Start();
//Wait for window to spin up
proc.WaitForInputIdle();
BringWindowToTop(proc.MainWindowHandle);