Worker角色隐藏控制台进程

本文关键字:进程 控制台 隐藏 角色 Worker | 更新日期: 2023-09-27 18:11:41

我试图在我的工作角色中执行控制台进程,但无论我为进程设置什么配置,它总是在后台运行:

这些是我的控制台设置:

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();

Worker角色隐藏控制台进程

方法之一是:

[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,据我所知。上面的解决方案假设您在与当前登录的用户相同的用户下运行进程。