per inviare dati al terminale devi avviare shell come processo e quindi instradare l' output sul processo, se vuoi sul forum trovi molti messaggi in proposito.
però nel tuo caso non funziona perchè sudo non ti lascia fisicamente il tempo di inviare la password al processo.
se stai creando un programma che installa vari programmi ti conviene lanciarlo direttamente da root .
in alternativa io usavo questo codice in un mio programa per uso personale:
SHELL "echo " & pass & " | sudo -S shutdown -h -P -v now"
dove pass contiene la password di root, modificatelo secondo le tue esigenze , ma sappi che non è molto bello come metodo
però nel tuo caso non funziona perchè sudo non ti lascia fisicamente il tempo di inviare la password al processo.
bhe! se vuoi una cosa davvero... allucinante, potresti provare questo brivido :-X
'' E' necessario aver attivato il componente: "gb.desktop",
'' ed aver installato nel sistema il programma "x-term".
Public Sub Form_Open()
Dim s As String
' Intendo avviare il tuo comando di prima come "root":
Desktop.RunAsRoot("apt-get install supertuxkart")
' Per ciascun processo in questo momento attivo...
For Each s In Dir("/proc", "", gb.Directory)
'...vado a vedere il file "comm":
If Exist("/proc" &/ s &/ "comm") Then
' Se in quel file c'è una stringa simile a "xdg-su",....
If File.Load("/proc" &/ s &/ "comm") Like "*xdg-su*" Then
'...allora avvio il ciclo
Do
Wait 0.01
'...che gira, gira e rigira in attesa fino a quando
' il processo di "xdg-su" non è stato terminato:
Loop Until Exist("/proc" &/ s) = False
Endif
Endif
Next
' Allora sono sicuro che ho passato *innanzitutto* la password,
' e il comando bash dovrebbe così poter partire tranquillamente.
End