Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Ejecutando un proceso desde un programa C#

Foro sobre el nuevo lenguaje C# conocido tambien como CSharp o C Numeral

Moderador: Bestprogramado

Ejecutando un proceso desde un programa C#

Notapor lisette el Sab Sep 08, 2007 6:37 am

Hola a todos,
Necesito ejecutar un proceso desde C#. Para eso uso:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = @"E:\FreeLing-1.5win\analyzer.exe";
p.StartInfo.Arguments = "-f E:\\FreeLing-1.5win\\config\\es.cfg < E:\\FreeLing-1.5win\\Text.txt > E:\\FreeLing-1.5win\\Text_parser.txt";
p.Start();
p.WaitForExit();


Eso que mando a ejecutar se supone que me deba crear el fichero Text_parser.txt en el directorio que le especifico, pero no hace nada, que puedo hacer?
Lo que necesito es poder capturar la salida de ese proceso, si conocen otra via que no sea escribir en un fichero igual me puede servir.
Gracias
lisette
Novato
Novato
 
Mensajes: 5
Registrado: Vie Ago 17, 2007 12:48 pm

Notapor Bestprogramado el Sab Sep 08, 2007 4:14 pm

Pues me parece que el problema es del archivo que estas ejecutando.

Pero no sabria decirte como obtenerlo. Talvez puedas usar Shell, es una funcion del nombre de espacios (namespace) de visual basic.
Imagen
Imagen
Programar es jugar a ser Dios!!
Avatar de Usuario
Bestprogramado
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 118
Registrado: Mar May 31, 2005 1:44 pm
Ubicación: Buenos Aires

Notapor lisette el Lun Sep 10, 2007 3:39 am

Hola

Le adicione dos nuevas opciones al codigo y ahora tiene esta forma:

p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.FileName = @"E:\\FreeLing-1.5win\\analyzer.exe";
p.StartInfo.Arguments = "-f E:\\FreeLing-1.5win\\config\\es.cfg < E:\\FreeLing-1.5win\\Text.txt";
p.Start();string output = p.StandardOutput.ReadToEnd();


Ahora por lo menos puedo ver que es lo que esta pasando, te cuento.
El programa que mando a ejecutar, FreeLing, esta dando error porque no esta recibiendo correctamente los parametros, es como si no estuviera recibiendo el cuarto parametro (<) lo que no entiendo por que. Cuando el mismo programa lo mando a correr desde la linea de comendo con los mismos parametros funciona perfectamente. Que crees que esta pasando?

Saludos, Lisette
lisette
Novato
Novato
 
Mensajes: 5
Registrado: Vie Ago 17, 2007 12:48 pm


Volver a C# (CSharp)

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado