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

Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
Artículo
Citar    Descargar mensaje  
Mensaje 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



 
destroyer - Perfil MP  
destroyer [ Jueves, 09 Junio 2011, 19:15 ]


Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa
Comentarios
Citar    Descargar mensaje  
Mensaje 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 
soplo - Perfil MP  
soplo [ Jueves, 09 Junio 2011, 19:45 ]
Citar    Descargar mensaje  
Mensaje Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa 
 
gracias soplo lo pruebo y comento el resultado.



 
destroyer - Perfil MP  
destroyer [ Viernes, 10 Junio 2011, 06:28 ]
Citar    Descargar mensaje  
Mensaje 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).



 
jsbsan - Perfil MP  
jsbsan [ Viernes, 10 Junio 2011, 08:13 ]
Citar    Descargar mensaje  
Mensaje 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?



 
destroyer - Perfil MP  
destroyer [ Viernes, 10 Junio 2011, 22:06 ]
Citar    Descargar mensaje  
Mensaje Re: Ejecutar Programa Con SHELL/EXEC Y Responder A Pregunta De Dicho Programa 
 
tendré que probarlo. Te diré algo mañana.



 
soplo - Perfil MP  
soplo [ Viernes, 10 Junio 2011, 22:56 ]
Citar    Descargar mensaje  
Mensaje 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!



 
razaAztk - Perfil MP  
razaAztk [ Sabado, 11 Junio 2011, 08:00 ]
Mostrar mensajes anteriores:    
Publicar nuevo tema  Responder al tema  Página 1 de 1
 
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 


   

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.5099s (PHP: -84% SQL: 184%)
Consultas SQL: 46 - Debug off - GZIP Activado