Parece que no puedo encontrar una respuesta en Google o aquí en StackOverflow.
¿Cómo puedo iniciar un proceso en segundo plano (detrás de la ventana activa)? Por ejemplo, cuando se inicia el proceso, no interrumpirá la aplicación actual que está utilizando el usuario.
El proceso no aparecerá frente a la aplicación actual, simplemente comenzará.
Esto es lo que estoy usando:
Process.Start(Chrome.exe);Chrome aparece frente a mi aplicación cuando se inicia. ¿Cómo puedo hacer que comience en segundo plano?
También he intentado:
psi = new ProcessStartInfo ("Chrome.exe"); psi.UseShellExecute = true; psi.WindowStyle = ProcessWindowStyle.Hidden; psi.WindowStyle = ProcessWindowStyle.Minimized; Process.Start(psi);Pero no hay ninguna diferencia con el anterior.
Gracias.
Prueba esto:
Process p = new Process(); p.StartInfo = new ProcessStartInfo("Chrome.exe"); p.StartInfo.WorkingDirectory = @"C:\Program Files\Chrome"; p.StartInfo.CreateNoWindow = true; p.Start();Además, si eso no funciona, intente agregar
p.StartInfo.UseShellExecute = false;El siguiente código debería hacer lo que necesita:
class Program { static void Main(string[] args) { var handle = Process.GetCurrentProcess().MainWindowHandle; Process.Start("Chrome.exe").WaitForInputIdle(); SetForegroundWindow(handle.ToInt32()); Console.ReadLine(); } [DllImport("User32.dll")] public static extern Int32 SetForegroundWindow(int hWnd); }