elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  (SOLUCIONADO) Como agarrar el error-output de un proceso?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: (SOLUCIONADO) Como agarrar el error-output de un proceso?  (Leído 2,846 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
(SOLUCIONADO) Como agarrar el error-output de un proceso?
« en: 27 Noviembre 2012, 09:52 am »

Hola,

Necesito agarrar el error output de la CMD en este código, pero no sé como hacerlo, solo me agarra el output standard. ¿Me pueden indicar como se hace?

Muchas gracias!

PD: Ya sé que es una mala práctica usar comandos externos, pero no encuentro ninguna librería que sirva para buscar metadataos Y A LA VEZ convertir videos, eso es dificil, estoy aprendiendo!


Código
  1.                If metadata = True Then
  2.                    Dim ffmpeg_process As New Process()
  3.                    Dim ffmpeg_startinfo As New ProcessStartInfo()
  4.                    ffmpeg_startinfo.FileName = "cmd.exe "
  5.                    ffmpeg_startinfo.UseShellExecute = False
  6.                    ffmpeg_startinfo.CreateNoWindow = False
  7.                    ffmpeg_startinfo.Arguments = "/C ffmpeg.exe -y -i " & ControlChars.Quote & aFile.FullName.ToString() & ControlChars.Quote & " -f ffmetadata " & ControlChars.Quote & "%TEMP%\" & aFile.Name.ToString() & "_metadata.txt" & ControlChars.Quote & " >NUL 2>&1 && Type " & ControlChars.Quote & "%TEMP%\" & aFile.Name.ToString() & "_metadata.txt" & ControlChars.Quote & "| FINDSTR /I " & ControlChars.Quote & "^INAM ^title" & ControlChars.Quote
  8.                    ffmpeg_startinfo.RedirectStandardOutput = True
  9.                    ffmpeg_process.EnableRaisingEvents = True
  10.                    ffmpeg_process.StartInfo = ffmpeg_startinfo
  11.                    ffmpeg_process.Start()
  12.                    Dim readerStdOut As IO.StreamReader = ffmpeg_process.StandardOutput
  13.                    Do While readerStdOut.EndOfStream = False
  14.                        consolebox.AppendText(readerStdOut.ReadLine() + vbNewLine)
  15.                        consolebox.SelectionStart = consolebox.Text.Length
  16.                        consolebox.ScrollToCaret()
  17.                    Loop
  18.                End If


« Última modificación: 27 Noviembre 2012, 19:07 pm por EleKtro H@cker » En línea

kub0x
Enlightenment Seeker
Moderador
***
Desconectado Desconectado

Mensajes: 1.486


S3C M4NI4C


Ver Perfil
Re: Como agarrar el error-output de un proceso?
« Respuesta #1 en: 27 Noviembre 2012, 13:35 pm »

Código
  1. proceso.redirectstandarderror = true
  2. Dim stderr as string = Proceso.standarderror.readtoend
  3.  

simplemente configuras el proceso para que redireccione los posibles errores.

Saludos dsd android


En línea

Viejos siempre viejos,
Ellos tienen el poder,
Y la juventud,
¡En el ataúd! Criaturas Al poder.

Visita mi perfil en ResearchGate

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Como agarrar el error-output de un proceso?
« Respuesta #2 en: 27 Noviembre 2012, 13:57 pm »

usa un wrapper de ese ffmpeg.exe, asi te evitas escribir cada comando de conversion de video, ya te viene todo programado en una libreria lista para usar en .NET, hay varias, pero una de las mejores es:

ffmpeg-sharp

saludos.

En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: Como agarrar el error-output de un proceso?
« Respuesta #3 en: 27 Noviembre 2012, 14:07 pm »


Cita de: SOURCEFORGE
Your search did not generate any results.
You may want to try your search over all downloads.

This project currently has no downloads.

xD?

Te lo agradezco Seba, buscaré otro parecido...

Saludos
En línea

seba123neo


Desconectado Desconectado

Mensajes: 3.621



Ver Perfil WWW
Re: Como agarrar el error-output de un proceso?
« Respuesta #4 en: 27 Noviembre 2012, 14:18 pm »

cambio de pagina el proyecto, ahora esta en sourceforge:

SharpFFmpeg

y aca tenes otro:

FFmpeg.NET

saludos.
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.809



Ver Perfil
Re: Como agarrar el error-output de un proceso?
« Respuesta #5 en: 27 Noviembre 2012, 15:59 pm »

Código
  1. proceso.redirectstandarderror = true
  2. Dim stderr as string = Proceso.standarderror.readtoend
  3.  

simplemente configuras el proceso para que redireccione los posibles errores.

Saludos dsd android

Gracias Kubox, aunque me expliqué mal, yo lo que necesitaba era el ExitCode, pero ya está.



Sobre el SharpFFmpeg, me voy a abstener de usarlo, aparte de porque el proyecto tiene SEIS años de antiguedad sin actualizarse, solo hay ejemplos escritos en C#, así que ni idea tengo xD.

Y el FFMPEG.Net no soporta codificación de video, y si no he entendido mal solo soporta pistas WAV, está muy verde, así que tampoco me sirve...

Saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines