FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Leer texto de otra aplicación
Hola
Mi problema es el siguiente, tengo que ejecutar desde Delphi una aplicación que corre bajo DOS, la entrada a esta aplicación es solamente por teclado y lo que me devuelve lo hace en pantalla. Consultando acá en el foro ya encontré la solución a los primeros puntos, es decir ya ejecuté esta aplicación desde Delphi y envié los datos mediante simulación de teclado. Lo que me falta es traerme lo que esta aplicación me devuelve a Delphi, lo que me devuelve es texto, sería básicamente poder traerme a Delphi la líneas que hay dentro de la pantalla de command.com ¿Hay alguna forma de hacer esto? Si alguien puede ayudarme realmente estaré muy agradecida. |
#2
|
||||
|
||||
#3
|
|||
|
|||
Gracias seoane por tu respuesta. Lamentablemente no consigo adaptar el ejemplo que me diste a mi aplicación. Creo que el tema tiene que ver con el programita que yo ejecuto. Por ejemplo, para ejecutar este programita directamente desde command.com, tengo que poner todo el path: c:\vienna.rnafold.exe, no es una simple "instrucción?" como 'time', entonces en el ejemplo que me das en la instrucción:
GetEnvironmentVariable('COMSPEC', @Buffer, SizeOf(Buffer) - 1); lo que obtengo en Buffer es: 'C:\windows\system32\cmd.exe' La verdad es que soy principiante en esto de programar en Delphi y no manejo mucho el tema de las funciones de la API de Windows. Si alguien puede darme una mano, GRACIAS! |
#4
|
||||
|
||||
hola... no es una solucion elegante,pero creo que puede funcionar...
lo que habria que hacer seria... al ejecutar tu programa con los parametros correspondientes enviar todo eso a tu archivo de texto y despues levantarlo... nose que funcion estaras utilizando para ejecutar tu aplicacion externa pero te doy un ejemplo ilustrativo... ShellExecute('c:\MyDirectorio\MyAplicacion.exe','Parametro 1','> resultado.txt') despues levantas el txt y recuperas los datos que a ejecutado esa apliacion... espero que te sirvar de algo...
__________________
|DTAR| |
#5
|
||||
|
||||
CreateDOSProcessRedirected
Si la salida del programa es la estandar, debería utilizar un procedimiento tal cual se describe en este hilo
CreateDOSProcessRedirected Además cito otro procedimiento con el cual podría controlar el programa sin necesidad de enviarle teclas, eso en el caso de que tuviera la entrada estandar.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
#6
|
|||
|
|||
Tal vez si conocen el código que estoy usando sea más fácil para ustedes entender mi problema. el código es el siguiente:
y lo que no puedo hacer es capturar los datos de salida que me da la aplicación rnafold.exe. Esta salida es de tipo stdout, es decir no me genera ningún archivo de salida. Gracias por su ayuda!!! Última edición por erika.martinez fecha: 27-03-2007 a las 18:36:00. |
#7
|
||||
|
||||
Cita:
|
#8
|
|||
|
|||
Si, le pasé todo el path, y lo que obtengo es lo que puse en el mensaje #3
|
#9
|
||||
|
||||
Buffer es una variable interna, entiendo entonces que colocas un breakpoint y examinas su contenido ¿cuando lo haces? ¿en que instrucción lo haces?
|
#10
|
||||
|
||||
seoane:
Lo que veo es que en CreateProcess le asignas la salida al primer pipe. Pena; no tengo ningún programa DOS a mano para probarlo.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
leer cadena de otra aplicacion | jar | OOP | 2 | 05-02-2007 20:18:12 |
Utilizar un DBGrid para leer de una tabla y escribir en otra | taru | MySQL | 0 | 25-07-2006 18:31:06 |
Pasar texto de una aplicacion delphi a otra | OmarPerez | API de Windows | 4 | 13-07-2005 20:56:19 |
Leer texto de un txt | Walterdf | Varios | 1 | 07-05-2003 14:35:36 |
|