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


Objetivo: 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

Perfil MP  
Objetivo: 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.

última edición por soplo el Jueves, 09 Junio 2011, 19:47; editado 2 veces
Perfil MP  
Objetivo: Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
gracias soplo lo pruebo y comento el resultado.

Perfil MP  
Objetivo: 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).

Objetivo: 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?

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

Perfil MP  
Objetivo: 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!


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.1299s (PHP: -32% SQL: 132%)
Consultas SQL: 23 - Debug off - GZIP Activado