• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

300
Views
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 3 years ago · Santiago Trujillo
2 answers
Answer question

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 3 years ago · Santiago Trujillo Report

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 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error