当我开始一个新的过程时,它会自动获得焦点。如何防止它获得焦点或者将焦点重新集中到我的应用程序?
这是我正在使用的代码:
string path = @"c:\temp\myprocess.exe";
ProcessStartInfo info = new ProcessStartInfo(path);
info.WorkingDirectory = path;
Process p = Process.Start(info);
我只是需要执行的过程才能获得焦点。
非常感谢,
阿迪巴尔达
答案 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;