Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Ejecutar aplicación en segundo plano y recoger los mensajes (https://www.clubdelphi.com/foros/showthread.php?t=10819)

Angel Fernández 30-05-2004 01:04:39

Ejecutar aplicación en segundo plano y recoger los mensajes
 
Saludos a todo el mundo. Quisiera pedir ayuda respecto a un tema que me tiene bastante ocupado últimamente. Sé que puedo ejecutar una aplicación desde Delphi con shellexecute (por ejemplo), pero ¿cómo puedo ejecutar una aplicación en segundo plano y recoger los mensajes que me va enviando? Por ejemplo: quiero ejecutar lame.exe (el codificador de mp3) en segundo plano, pero quiero mostrar en una barra el progreso y en un memo las frecuencias que va tratando. Para ello, lame.exe presenta en una pantalla DOS una información muy útil que va actualizando cada segundo. ¿Puedo recoger esta información para presentarla a mi conveniencia en un form?

Gracias a todos por vuestras respuestas.:o

jachguate 30-05-2004 05:21:32

Si lame.exe escribe esa información en la salida estándar, podes redireccionarla a una tubería (pipe). Para ello has de lanzarla con CreateProcess y su salida estándar redireccionada a una tubería creada por tu proceso con CreatePipe

Es muy probable que ya encontres algun componente que encapsule la tubería... en torry seguramente lo hallas.

Aqui tenes un vínculo directo al TPipe ubicado en torry's, pero seguramente hay mas.

Hasta luego.

;)

delphi.com.ar 30-05-2004 16:30:54

Lame Encoder tiene una DLL, para poder hacer esto sin crear procesos hijos, que por prolijidad y facilidad, te recomiendo usarla.

Saludos!

Angel Fernández 04-06-2004 17:37:44

¿Sabes cómo utilizar Lame_enc.dll?
 
Sé que lame tiene la librería lame_enc.dll y es la que estoy usando. Funciona bien excepto en un problema que me va a volver loco y es que en modo VBR o ABR (bitrato variable o bitrato medio) no consigo hacer que escriba la cabecera del fichero mp3. ¿Qué pasa si el fichero no tiene cabecera? Aparentemente nada; el fichero suena bien. Pero hay un problemilla: ningún reproductor de mp3 indica bien la longitud en segundos del fichero ni es capaz de reconocer el bitrate (indican siempre 32 kbts, el mínimo). He intentado "forzar" al dll con el procedimiento bewritevbrheader(string), pero lo único que consigo es un mensaje de error: BE_ERR_INVALID_FORMAT_PARAMETERS. ¿Alguien sabe qué leches pasa?

En mi defensa he de decir que, por lo que he visto, es un problema universal en casi todos los programillas que usan lame_enc.dll; todos pecan de no escribir la cabecera del archivo mp3. Una honrosa excepción a esto es el entorno de Audiograbber que funciona de maravilla (¿alguien sabe el código fuente de Audiograbber? ¿Demasiado pedir?).

Gracias.

P.D: Entiendo que este problema, más que de programación en Delphi, es de uso de lame_enc.dll, pero en fín, si alguien puede ayudar o decirme alguna dirección será bienvenido.


La franja horaria es GMT +2. Ahora son las 21:34:38.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi