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

754
Vistas
Process.Start() no inicia el archivo .exe (funciona cuando se ejecuta manualmente)

Tengo un archivo .exe que debe ejecutarse después de crear un archivo. El archivo se creó con éxito y estoy usando el siguiente código para ejecutar el archivo .exe después de eso:

 ProcessStartInfo processInfo = new ProcessStartInfo(); processInfo.FileName = pathToMyExe; processInfo.ErrorDialog = true; processInfo.UseShellExecute = false; processInfo.RedirectStandardOutput = true; processInfo.RedirectStandardError = true; Process proc = Process.Start(processInfo);

También probé con un simple Process.Start(pathToMyExe); pero el archivo .exe no se ejecuta. Cuando intento pathToMyExe manualmente en mi Explorador de Windows , el programa se ejecuta correctamente. Pero no a través del programa. Lo que veo es que el cursor vuelve a esperar unos segundos y luego vuelve a la normalidad. Así que tampoco hay excepciones lanzadas. ¿Qué está bloqueando el archivo?

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

0

No está configurando la ruta del directorio de trabajo y, a diferencia de cuando inicia la aplicación a través del Explorador, no se configura automáticamente en la ubicación del ejecutable.

Solo haz algo como esto:

 processInfo.WorkingDirectory = Path.GetDirectoryName(pathToMyExe);

(suponiendo que los archivos de entrada, DLL, etc. estén en ese directorio)

over 4 years ago · Santiago Trujillo Denunciar

0

 private void Print(string pdfFileName) { string processFilename = Microsoft.Win32.Registry.LocalMachine .OpenSubKey("Software") .OpenSubKey("Microsoft") .OpenSubKey("Windows") .OpenSubKey("CurrentVersion") .OpenSubKey("App Paths") .OpenSubKey("AcroRd32.exe") .GetValue(string.Empty).ToString(); ProcessStartInfo info = new ProcessStartInfo(); info.Verb = "print"; info.FileName = processFilename; info.Arguments = string.Format("/p /h {0}", pdfFileName); info.CreateNoWindow = true; info.WindowStyle = ProcessWindowStyle.Hidden; ////(It won't be hidden anyway... thanks Adobe!) info.UseShellExecute = false; Process p = Process.Start(info); p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; int counter = 0; while (!p.HasExited) { System.Threading.Thread.Sleep(1000); counter += 1; if (counter == 5) { break; } } if (!p.HasExited) { p.CloseMainWindow(); p.Kill(); } }
over 4 years ago · Santiago Trujillo Denunciar

0

Debido a los diferentes directorios de trabajo, debe configurar su directorio de trabajo correctamente en la ruta en la que desea que comience su proceso.

Un ejemplo de demostración de esto puede ser:

 Process process = new Process() { StartInfo = new ProcessStartInfo(path, "{Arguments If Needed}") { WindowStyle = ProcessWindowStyle.Normal, WorkingDirectory = Path.GetDirectoryName(path) } }; process.Start();
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