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

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

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

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

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 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