Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

332
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda