C#进程启动焦点问题

时间:2010-12-21 12:29:19

标签: c# process focus


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

这是我正在使用的代码:

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

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

非常感谢,
阿迪巴尔达

4 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:4)

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

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

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

答案 2 :(得分:0)

你能做到吗

myForm.Focus();

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

答案 3 :(得分:0)

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

//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;