Cita:
|
Iniciado por Peter
Hola!!
Tengo un programa en VB que llama a otros programas de consola, el problema, es que alguno de esos programas de vez en cuando pide una confirmacion de (y/n) , y me gustaria automatizar el 'y' (es para aceptar la clave RSA del otro equipo, siempre hay que decirle que si).
No se como hacer esto, y agradeceria una orientacion.
Un saludo.
|
Hola:
El siguiente ejemplo esta hecho en Vbscript, pero creo que puede funcionar,
Vbasic y vbscript son casi identicos. Si no funciona en vbasic podrias crear un objeto script ("wscript.shell") dentro de tu programa.
El ejemplo se encuentra en :
http://msdn.microsoft.com/library/de...inproperty.asp
Y tambien en el archivo de ayuda "script56.chm" ( en español) que puedes bajar tambien de microsoft (no tengo el enlace exacto pero navegando a partir del enlace anterior lo encontraras)
El truco esta en leer el "stdout" salida standar del programa de consola :
lineas :" input = input & oExec.StdOut.Read(1)"
y
" If InStr(input, "Press any key") <> 0 Then ..."
En el "then" podrias poner el comando que envie "y" o "s" y {enter} mediante sendkeys u otro metodo (hay mas de 10 maneras de hacerlo)
Espero que sea de ayuda.
XOR AND
EJEMPLO:
Dim WshShell, oExec, input
Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("test.bat")
input = ""
Do While True
If Not oExec.StdOut.AtEndOfStream Then
input = input & oExec.StdOut.Read(1)
If InStr(input, "Press any key") <> 0 Then Exit Do
End If
WScript.Sleep 100
Loop
oExec.StdIn.Write VbCrLf
Do While oExec.Status <> 1
WScript.Sleep 100
Loop