Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa


Subject: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
Necesito ejecutar un programa de esta forma (O bien con EXEC o SHELL):

SHELL "programa parametros" WAIT TO variable


el problema que tengo es que dicho programa realiza dos preguntas en el promt a las cuales hay que responder Y o N. Que yo sepa dicho programa no tiene ninguna opcion de decirle "assume Y o assume N". No se si existe alguna forma desde gambas de responder a dichas preguntas sin que el usuario tenga que pulsar nada, asumiendo que siempre dichos valores seran los mismos para todas las ejecuciones de ese programa.

Y si no se puede con gambas.....¿como puedo resolver esto? (si es que se puede)

gracias

Profile PM  
Subject: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
Hola

shell admite dos formatos. El que tu has usado sirve para volcar el resultado en un string pero puedes usarlo de otra forma

Private P as process 'declarada a nivel de clase
Private Mensaje as string

P=shell "programa parámetros" for read write as Proceso 'con esto abres el stream.

public sub Proceso_Read() 'este evento salta al recibir datos que envía el proceso (cosas que escribe)
read #last, Mensaje,len(Mensaje)
print #p,"y" 'enviarle un YES
end

public sub Proceso_Kill() 'cuando el proceso termina
print Mensaje
end


Debe ser algo así. Habría que probarlo, no lo he hecho nunca.

Last edited by soplo on Thursday, 09 June 2011, 19:47; edited 2 times in total
Profile PM  
Subject: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
gracias soplo lo pruebo y comento el resultado.

Profile PM  
Subject: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
Puede hacerse de otra forma, usando el redireccionamiento "<" (Redirección de entrada)


Citar:
Redirección de entrada: un comando que necesita datos de entrada los toma de un fichero.


Ejemplo: more, mostraba un archivo poco a poco

$more <fichero.txt

nos muestra el archivo fichero.txt, pagina a pagina

El redireccionamiento de entrada se usa con comando de “filtro”, que en principo, estan destinados a trabajar con lo que tu le mandes.


Otro por ejemplo el grep: buscar texto dentro de lo que lo envies ..

grep palabra_a_buscas <fichero.txt



ver mi pagina https://sites.google.com/site/fpopr...ireccionamiento para mas detalles.

Nota:
El comando tiene que "soportar" la entrada/salida standard, sino no te funcionara (normalmente los comandos de gnu/linux, si lo soportan).

Subject: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
He probado las 2 opciones y ninguna funciona. En gambas he probado esto:

Public hProcess As Process

Public Sub Form_Open()
hProcess = Shell "ls -l" For Read Write As "Process"
End

Public Sub Process_Read()
Dim sLine As String
Read #hProcess, sLine, -256
Print sLine
Print #hProcess, "Y"
End


Y siempre me da ERROR "tuberia rota"

¿Alguna Idea?

Profile PM  
Subject: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
tendré que probarlo. Te diré algo mañana.

Profile PM  
Subject: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
Pss yo creo que como ls no necesita de ningana entrada de información éste se ejecuta y termina. Por lo que ya no es posible enviarle información. El por ello de tuberia rota.

Mejor has la prueba con otro comando que espere data de la entrada standard.

Saludos!


Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.1305s (PHP: -46% SQL: 146%)
SQL queries: 24 - Debug Off - GZIP Enabled