我正在尝试在我的辅助角色中执行控制台进程,但无论我为进程设置了什么配置,它始终在后台运行:
这些是我的控制台设置:
Process proc = new Process();
proc.StartInfo.FileName = "D:\\ZProcessing.exe" ; //console process
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
proc.Start();
答案 0 :(得分:0)
一种方法是:
[DllImport("User32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
private IntPtr handle;
private Process proc;
private void MyMethod()
{
proc = new Process();
proc.StartInfo.FileName = "D:\\ZProcessing.exe" ; //console process
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.CreateNoWindow = false;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
proc.Start();
// Find new window handle
handle = proc.MainWindowHandle;
// Set it to foreground
SetForegroundWindow(handle);
}
不幸的是,就我所知,使用纯.NET是不可能的。以上是一种解决方案,假设您在与当前登录用户相同的用户下运行该进程。