Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

[SOLUCIONADO]  Mostrar la ejecución de un comando en terminal y cerrar al terminar
#1

buenas

me tiene loco este código,

sudo pip3 install --force-reinstall youtube-dl

quiero ejecutar eso en un terminal para que el usuario vea el progreso y al terminar el mismo quiero cerrar la ventana inmediatamente pero no logro hacerlo

alguna sugerencia?

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
    ¡Gracias!
#2

Abres el terminal con Gambas ?

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#3

uso un formulario llamado terminal con un terminalview y lo uso como clase

terminal.instalyoutube
termina.mensaje
termina.etc

un amigo me tiro este codigo que tengo que probar yo ya habia probado algo de esto pero sin exito, no se si le erre a la sintaxis o que hice mal.
esto es para darte una idea de lo que quiero.
Código:
Public Sub installyoutube()
Dim proceso5 As Process
 
  Me.show()
  proceso5 = TerminalView1.Exec(["sudo", "/usr/bin/pip3", "-q", "install", "-U", "youtube-dl"], ["bash"])
   While proceso5.State = Process.Running
      Wait 1 ' 0.5
  Wend
   Wait 0.1
  proceso5.close
End

Public Sub ExisteYoutubedl()
  FMain.ShowMensajes("Comprobando si youtube-dl esta instalado")
  If System.Exist("youtube-dl") = False and if System.Exist("pip3") Then
     FMain.ShowMensajes("Instalando youtube-dl espere por favor...")
      Terminal.Title = "instalación youtube-dl"
      Terminal.Mensaje("Ingrese su contraseña para iniciar la instalación")
      Terminal.installyoutube()
      Terminal.Close
      If System.Exist("youtube-dl") Then
        FMain.ShowMensajes("youtube-dl se instaló con éxito")
        Wait 1
      Else
        FMain.ShowMensajes("Fallo la instalación de youtube-dl")
        Wait 2
      Endif
    Endif
  Endif

  MostrarVersionYoutube_dl

Catch
  Message.Error(Error.Text & gb.NewLine & Error.Where)

End

 

bueno descubrí algo no me andaba a mi porque pip3 va con la ruta absoluta, hago mas pruebas y les cuento.
como se ve en el código ahí.

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
    ¡Gracias!
#4

(06-10-2020, 17:14)kokodrilo escribió:  uso un formulario llamado terminal con un terminalview y lo uso como clase

Desculpa, no lo encuentro. Sad
Como haces ? Donde está ? Que Componente usas ?

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#5

gb.term y gb.form.terminal

parece que esto funciona:

  TerminalView1.Print("Comenzando tarea espere por favor..." & gb.Lf)
  TerminalView1.Goto(0, 2)
  Proceso5 = TerminalView1.Exec(["sudo", "pip3", "install", "--force-reinstall", "youtube-dl"], ["bash"])

  While proceso5.State = Process.Running
    Wait 1 ' 0.5
  Wend
  Wait 0.1
  proceso5.close

  Me.Close

El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
    ¡Gracias!
#6

(06-10-2020, 18:59)kokodrilo escribió:  gb.term y gb.form.terminal

Ah, ok, gracias.

(06-10-2020, 18:59)kokodrilo escribió:  While proceso5.State = Process.Running

Sì, usando Process, me parece la mejor solución.

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
    ¡Gracias!
#7

solucionado:

Public Sub installyoutube()

  Dim proceso5 As Process

  Me.show()

  TerminalView1.Print("Comenzando la tarea espere por favor..." & gb.Lf)
  TerminalView1.Goto(0, 2)
  Proceso5 = TerminalView1.Exec(["sudo", "pip3", "install", "--force-reinstall", "youtube-dl"], ["bash"])

  While proceso5.State = Process.Running
    Wait 1
  Wend

  proceso5.close

  Me.Close

Catch

End


El tiempo de las manifestaciones caducó pero el boicot con auto sacrificio es el camino para derrotar al sistema.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)