versiones - ¿Cómo lanzo la aplicación una de otra en C#?
que es el lenguaje de programación c++ (7)
Algún código de muestra:
try
{
stateMainLayout b = new stateMainLayout();
b.Location = Screen.AllScreens[1].WorkingArea.Location;
b.ShowDialog();
}
catch
{
stateMainLayout b = new stateMainLayout();
b.ShowDialog();
}
Tengo dos aplicaciones de escritorio. Después de cerrar la primera aplicación, la primera aplicación iniciará la segunda aplicación.
¿Cómo comienzo la segunda aplicación después de terminar la primera aplicación?
Mi primera aplicación crea un escritorio separado.
CSharp / PowerShell Llamar a otro programa y enviar / recibir datos: https://huseyincakir.wordpress.com/2014/12/23/sending-input-from-csharppowershell-to-another-program/
Puede usar la clase de proceso de .NET para iniciar un proceso como lo describen otras personas. Entonces la pregunta es cuándo llamar.
En la mayoría de los casos, usar el evento Form.Closing
o Form.Closed
parece ser una opción fácil.
Sin embargo, si alguien más puede manejar el evento y puede establecer CancelEventArgs.Cancel
en true, puede que este no sea el lugar adecuado para hacerlo. Además, los eventos Form.Closing
y Form.Closed
no se generarán cuando se llame a Application.Exit()
. No estoy seguro de si alguno de los eventos se generará si se producen excepciones no controladas. (Además, debe decidir si desea iniciar la segunda aplicación en el caso de Application.Exit()
o cualquier excepción no controlada).
Si realmente quieres asegurarte de que la segunda aplicación (App2) se inicie después de que la primera aplicación (App1) haya salido, puedes jugar un truco:
- Crear una aplicación separada (App0)
- App0 lanza App1
- App0 espera a que App1 se cierre con Process.WaitExit ()
- App0 lanza App2 y sale de sí mismo
La aplicación de consola de muestra adjunta a continuación muestra un caso muy simple: mi aplicación de muestra lanza el bloc de notas primero. Luego, cuando el bloc de notas sale, lanza mspaint y se cierra solo.
Si desea ocultar la consola, simplemente configure la propiedad ''Tipo de salida'' de ''Aplicación de consola'' a ''Aplicación de Windows'' en la pestaña ''Aplicación'' de la Propiedad del proyecto.
Código de muestra:
using System;
using System.Diagnostics;
namespace ProcessExitSample
{
class Program
{
static void Main(string[] args)
{
try
{
Process firstProc = new Process();
firstProc.StartInfo.FileName = "notepad.exe";
firstProc.EnableRaisingEvents = true;
firstProc.Start();
firstProc.WaitForExit();
//You may want to perform different actions depending on the exit code.
Console.WriteLine("First process exited: " + firstProc.ExitCode);
Process secondProc = new Process();
secondProc.StartInfo.FileName = "mspaint.exe";
secondProc.Start();
}
catch (Exception ex)
{
Console.WriteLine("An error occurred!!!: " + ex.Message);
return;
}
}
}
}
Use la clase Proceso cuando esté saliendo de su primera aplicación.
var p = new Process();
p.StartInfo.FileName = "notepad.exe"; // just for example, you can use yours.
p.Start();
Usted podría simplemente pagarla, así que cuando esté a punto de salir de la primera aplicación, simplemente inicie la segunda aplicación a través de:
System.Diagnostics.Process.Start(@"PATH/NAME.EXE");
Utilice la clase de Process
de .NET.
en algunos casos es necesario agregar el directorio de trabajo a su código para que la aplicación funcione perfectamente. Especialmente cuando la aplicación depende de DLL y otros recursos.
TestProcess.StartInfo.FileName = "notepad.exe";
TestProcess.StartInfo.WorkingDirectory = @"C://blah/blah/Directory of notepad.exe/";
TestProcess.Start();