Gambas-it

Gambas3 => Programmazione => Topic aperto da: Gratisweb - 03 Aprile 2024, 13:15:15

Titolo: problema shell apt
Inserito da: Gratisweb - 03 Aprile 2024, 13:15:15
IN un form inserisco un butto e dentro button metto questo codice:

Private pr As Process
Private fl As File

Public Sub Osserva_Read()
 
' Reindirizziamo l'output del processo  verso il Terminale:
  Output To #fl
 
  Print pr.ReadLine()
End

Public Sub Button1_Click()
  root = InputBox("Immetti password di root")

' Lanciamo con Shell i due comandi, e ne poniamo in osservazione in lettura il processo: '
   pr = Shell "echo " & root & " | sudo -S apt update && sudo -S apt upgrade" For Input As "Osserva"
end

dopo averlo compilato in eseguibile lo avvio da terminal, vedo che esegue il comando apt update ed ad un tratto quando arriva così

Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze... Fatto
Lettura informazioni sullo stato... Fatto   
Calcolo dell'aggiornamento... Fatto
0 aggiornati, 0 installati, 0 da rimuovere e 0 non aggiornati.

devo premere invio del terminale altrimenti non mi appare il cursore per scrivere.
E questo il problema
Titolo: Re:problema shell apt
Inserito da: Gratisweb - 03 Aprile 2024, 17:13:34
Vi faccio un esempio per farvi capire cosa voglio dire......
In un form mettete un button ed inserite il seguente codice:

shell "apt update"

poi create l' eseguibile e lanciatelo da riga di comando
sudo ./nome programma.gambas

cliccate sul button e guardate come si comporta il terminale. Ad un certo punto si ferma e non va avanti
Titolo: Re:problema shell apt
Inserito da: vuott - 03 Aprile 2024, 23:41:41
devo premere invio del terminale altrimenti non mi appare il cursore per scrivere.
...e se clicchi con il puntatore del mouse nel Terminale ?
Titolo: Re:problema shell apt
Inserito da: Gratisweb - 04 Aprile 2024, 10:07:21
devo premere invio del terminale altrimenti non mi appare il cursore per scrivere.
...e se clicchi con il puntatore del mouse nel Terminale ?

IO non devo cliccare nulla, si deve fermare da solo senza premere nemmeno invio