C#进程启动焦点问题

当我开始一个新的过程时,它会自动获得焦点。 如何防止它获得焦点或者将焦点重新集中到我的应用程序?

这是我正在使用的代码:

string path = @"c:\temp\myprocess.exe"; ProcessStartInfo info = new ProcessStartInfo(path); info.WorkingDirectory = path; Process p = Process.Start(info); 

我只是需要执行过程才能获得焦点。

非常感谢你,
阿迪巴尔达

你可以做

 myForm.Focus(); 

其中myForm是主应用程序中的表单

将WindowStyle属性设置为Minimized可能会有所帮助。

如果您根本不需要显示该过程,请尝试以下操作:

 string path = @"c:\temp\myprocess.exe"; ProcessStartInfo info = new ProcessStartInfo(path); info.WorkingDirectory = path; info.WindowStyle = ProcessWindowStyle.Hidden; 

如果你希望它可见但最小化,或者将WindowStyle设置为ProcessWindowStyle.Minimized,正如Uwe Keim所说。

我所做的是等待一段时间,直到其他应用程序成功加载,然后关注我的应用程序窗口。

 //Test window const string strCmdText = "/C cd C:\\sqlcipher"; Process.Start("CMD.exe", strCmdText); //Delay int liMilliseconds = 50; Thread.Sleep(liMilliseconds); //Code to bring window to front this.WindowState = FormWindowState.Minimized; this.Show(); this.WindowState = FormWindowState.Normal;