Página 1 de 1

cogiendo datos de una consola

Publicado: 28 Ene 2010, 20:12
por xapu
buenas..
lo k kiero hacer es una interfaz para un programa k se llama subversion (svn.ex) y solo tiene consola. lo k kiero acer es kitar la consola y k los datos k salen aparezcan dentro de un edit de autoit (por ejemplo).
esto como seria? usando alguna api del programa?

Re: cogiendo datos de una consola

Publicado: 29 Ene 2010, 21:06
por Nahuel
Todas las cosas que preguntás pueden ser respondidas por vos mismo, buscando un poco acá en el foro y sobre todo en la ayuda y la documentación de AutoIt.

Re: cogiendo datos de una consola

Publicado: 30 Ene 2010, 14:16
por Chefito
Pienso lo mismo que Nahuel. Hay muchos ejemplos en el foro que hacen esto. Incluso hay scripts enteros que utilizan este método para interactuar con comandos de consola (yo mismamente tengo uno o dos :smt001 ).
En la ayuda de autoit también hay buenos ejemplos que hacen esto. Mira las funciones StderrRead, StdoutRead, StdinWrite, StdioClose en la ayuda y haz búsquedas de estas funciones en el foro. Verás como con esto encuentras lo que necesitas :smt003 .

Saludos.

Re: cogiendo datos de una consola

Publicado: 30 Ene 2010, 16:56
por xapu
e mirado por todo, e mirado esas funciones, he probado varias maneras, pero no me funciona!
si me pudierais ayudar, creo k el problema es como ejecutar comandos de ese programa con el run() por k e provado con el shellexecute() y no iva
esto es lo que e exo:

Código: Seleccionar todo

   
    #include<GUIConstantsEx.au3>
    #include <Constants.au3>
    GUICreate("Pantalla de línea de comandos", 300, 300)
    $boton_cerrar = GUICtrlCreateButton("Cerrar", 30, 280, 60)
    $boton_cls = GUICtrlCreateButton("CLS", 100, 280, 60)
    $boton_get = GUICtrlCreateButton("Get", 230, 80, 60)
    $input_edit = GUICtrlCreateEdit("Comandos de entrada:", 30, 10,200,100)
    $output_edit = GUICtrlCreateEdit("Salida de comandos", 30, 120, 250, 150)

    GUISetState(@SW_SHOW)

    While 1
       $msg1 = GUIGetMsg()
          Select

             Case $msg1 = $boton_get

                $entrada = GUICtrlRead($input_edit)
                $com = Run("svn.exe" & $entrada,"\serv",@SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD)
                While 1
                   $salida = StdoutRead($com)
                   If @error Then ExitLoop
                   if Not $salida = "" Then
                      ;MsgBox(0, "STDOUT read:", $Salida)
                      GUICtrlSetData($output_edit, $salida & @CRLF)
                   EndIf
                Wend

             Case $msg1 = $boton_cerrar
                MsgBox(0, "Eventos de ventana", "Has presionado salir!")
                ExitLoop

             Case $msg1 = $GUI_EVENT_CLOSE
                MsgBox(0, "Eventos de ventana", "Has presionado salir!")
                ExitLoop
          EndSelect
    wend

Re: cogiendo datos de una consola

Publicado: 31 Ene 2010, 07:11
por Chefito
Mmmmmm....ponos el enlace para poder bajarnos el archivo svn.exe y los parámetros que le quieres pasar a la variable $entrada y así podremos probar el código y ver mejor si se puede solucionar.
En esta línea de código:

Código: Seleccionar todo

$com = Run("svn.exe" & $entrada,"\serv",@SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD)
no has puesto separadores, y el directorio donde se encuentra el archivo lo has puesto inclompleto. Prueba con

Código: Seleccionar todo

$com = Run("svn.exe " & $entrada,@scriptdir & "\serv",@SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD)
. He puesto que el archivo svn.exe se encuentra en el directorio del script, y dentro de éste, en la carpeta serv.

No se si habrá algún fallo más. Habría que probar el código llamando al fichero de consola.

Saludos.

Re: cogiendo datos de una consola

Publicado: 31 Ene 2010, 12:48
por xapu
weee!!!! ya rula!
muxas gracias XD :smt003 era lo k tu decias chefito