我在C#中顺序启动多个进程时遇到了一些问题。我试着开始的这些过程只需花费30秒就可以完成他的程序。我不希望这些进程窃取任何应用程序的焦点。我已经试过两种方法(以下代码到一个循环语句):如何避免进程从C#应用程序窃取焦点?
myProcess.StartInfo.UseShellExecute = true;
myProcess.StartInfo.FileName = "References\\InclinacaoHGrid.exe";
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.Arguments = i.ToString() + " " + j.ToString() + " " +
valA + " " + valS + " " + valP + " " + pathNodes;
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
myProcess.EnableRaisingEvents = true;
myProcess.Exited += new EventHandler(myProcess_Exited);
myProcess.OutputDataReceived += new DataReceivedEventHandler(myProcess_OutputDataReceived);
myProcess.Start();
myProcess.WaitForExit();
而且使用Interaction.Shell与参数“AppWinStyle.MinimizedNoFocus”:
int pid = Interaction.Shell("References\\InclinacaoHGrid.exe " + i.ToString() + " " + j.ToString() + " " +
valA + " " + valS + " " + valP + " " + pathNodes, AppWinStyle.NormalNoFocus,true);
这两种方法没”因为流程(或流程的开始和结束的行为)正在从任何应用程序中窃取焦点,所以对我很有帮助。当我的应用程序运行时,我无法做任何事情。
[开始一个进程而没有窃取焦点(C#)]的可能的重复(http://stackoverflow.com/questions/2121911/starting-a-process-without-stealing-focus-c) –