Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

336
Vistas
Cómo iniciar otra aplicación desde la solución .NET y salir solo de la primera

Estoy escribiendo un software y tratando de implementar un actualizador automático en él como una aplicación separada. Tengo tanto el software como el actualizador bajo la misma solución.

Cuando hay una actualización disponible desde un servidor, mi programa solicita al usuario que actualice, esta parte funciona.

No llamo a la aplicación de actualización y luego salgo solo del primer programa.

Esto es lo que no tengo:

 private void button2_Click(object sender, EventArgs e) { // Update ExecuteAsAdmin("AutoUpdater.exe"); //System.Windows.Forms.Application.Exit(); Process.GetCurrentProcess().Kill(); } public void ExecuteAsAdmin(string fileName) { Process proc = new Process(); proc.StartInfo.FileName = fileName; proc.StartInfo.UseShellExecute = true; proc.StartInfo.Verb = "runas"; proc.Start(); }

Esto inicia con éxito el AutoUpdater.exe pero luego existe tanto el primer programa como el AutoUpdater.exe, este último no debe salirse ya que debería hacer la actualización.

¿Cómo salir de un solo programa de la misma solución?

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Agregue el código para cerrar la aplicación principal en el actualizador. Conoce el nombre del proceso, por lo que debería ser bastante fácil. De esta manera, también puede verificar que el actualizador comience a ejecutarse antes de que se cierre la aplicación principal.

El código a continuación está tomado de esta respuesta: https://stackoverflow.com/a/49245781/3279876 y no lo he probado yo mismo.

 Process[] runningProcesses = Process.GetProcesses(); foreach (Process process in runningProcesses) { // now check the modules of the process foreach (ProcessModule module in process.Modules) { if (module.FileName.Equals("MyProcess.exe")) { process.Kill(); } else { enter code here if process not found } } }
over 4 years ago · Santiago Trujillo Denunciar

0

Esto funciona con una aplicación mínima de winforms en mi sistema:

 System.Diagnostics.Process p = System.Diagnostics.Process.Start("notepad.exe"); Application.Exit();

pero también esto:

 ExecuteAsAdmin("notepad.exe"); Application.Exit()
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda