Differenze tra le versioni di "Lanciare da un'applicazione Gambas il Terminale e far partire da esso un programma"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "Se si intende lanciare da un'applicazione Gambas il Terminale e far partire da esso un qualsiasi programma, è possibile utilizzare alcune analoghe modalità. ==Uso di Shell...")
 
 
(6 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Se si intende lanciare da un'applicazione Gambas il Terminale e far partire da esso un qualsiasi programma, è possibile utilizzare alcune analoghe modalità.
+
Se si intende lanciare da un'applicazione Gambas il Terminale e far partire da esso un qualsiasi programma, è possibile utilizzare alcune modalità.
 +
==Uso della sola istruzione Shell==
 +
Per avviare attraverso l'istruzione ''Shell'' di Gambas un programma esterno da Terminale, si dovrà individuare il tipo di Terminale seguito da una opportuna opzione, la quale specifica il programma (e relativi argomenti della riga di comando) da eseguire nel Terminale prescelto.
  
 +
Mostriamo un semplice esempio, nel quale si eseguirà un file audio con il lettore multimediale cvlc, avviato all'interno del Terminale "gnome-terminal":
 +
Public Sub Main()
 +
 +
  Shell "gnome-terminal -x cvlc <FONT Color=gray>''/percorso/file/audio''</font>"
 +
 +
End
 +
In quest'altro esempio si userà il terminale "xterm":
 +
Public Sub Main()
 +
 +
  Shell "xterm -e cvlc <FONT Color=gray>''/percorso/file/audio''</font>"
 +
 +
End
  
==Uso di Shell==
+
 
Mostriamo un esempio di apertura del Terminale ''gnome-terminal'' mediante ''Shel'', e da lì avvio del programma ''vlc'' per l'esecuzione di un file audio:
+
==Uso di Shell con il Metodo "System.Find()"==
  '''Public''' Sub Main()
+
Mostriamo un esempio di apertura del Terminale ''gnome-terminal'' mediante ''Shell''e il Metodo "System.Find()", e da lì l'avvio del programma ''cvlc'' per l'esecuzione di un file audio:
 +
  Public Sub Main()
 
    
 
    
   Shell System.Find("gnome-terminal") & " -x " & System.Find("vlc") & " <FONT Color=gray>''/percorso/file/audio''</font>"  
+
   Shell System.Find("gnome-terminal") & " -x " & System.Find("cvlc") & " <FONT Color=gray>''/percorso/file/audio''</font>"  
 
    
 
    
  '''End'''
+
  End
 
 
 
Lo stesso codice, ma ora usando il terminale ''xterm'':
 
Lo stesso codice, ma ora usando il terminale ''xterm'':
  
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
  Shell System.Find("xterm") & " -e " & System.Find("vlc") & " <FONT Color=gray>''/percorso/file/audio''</font>"  
+
  Shell System.Find("xterm") & " -e " & System.Find("cvlc") & " <FONT Color=gray>''/percorso/file/audio''</font>"  
 
    
 
    
  '''End'''
+
  End
  
  
==Uso della funzione esterna ''execv( )''==
+
==Uso della funzione esterna "execv()"==
Mostriamo un esempio di apertura del Terminale ''gnome-terminal'' mediante la funzione esterna ''execv( )'', dichiarata nel file header "''/usr/include/unistd.h''":
+
Mostriamo un esempio di apertura del Terminale ''gnome-terminal'' mediante la funzione esterna "execv()", dichiarata nel file header "''/usr/include/unistd.h''":
  <FONT color=Gray>' ''int execv (const char *__path, char *const __argv[])''
+
<FONT color=Gray>' ''int execv (const char *__path, char *const __argv[])''
 
  ' ''Execute PATH with arguments ARGV and environment from `environ'.''</font>
 
  ' ''Execute PATH with arguments ARGV and environment from `environ'.''</font>
 
  Private Extern execv(path As String, argv As String[]) as Integer In "libc:6"
 
  Private Extern execv(path As String, argv As String[]) as Integer In "libc:6"
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
  execv(System.Find("gnome-terminal"), [" ", "-x", System.Find("vlc"), "<FONT Color=gray>''/percorso/file/audio''</font>"])
+
  execv(System.Find("gnome-terminal"), [" ", "-x", System.Find("cvlc"), " <FONT Color=gray>''/percorso/file/audio''</font>"])
 
    
 
    
  '''End'''
+
  End
 
 
 
Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale ''xterm'':
 
Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale ''xterm'':
 
  <FONT color=Gray>' ''int execv (const char *__path, char *const __argv[])''
 
  <FONT color=Gray>' ''int execv (const char *__path, char *const __argv[])''
Riga 38: Riga 51:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
    
 
    
  execv(System.Find("xterm"), [" ", "-e", System.Find("vlc"), "<FONT Color=gray>''/percorso/file/audio''</font>"])
+
  execv(System.Find("xterm"), [" ", "-e", System.Find("cvlc"), " <FONT Color=gray>''/percorso/file/audio''</font>"])
 
    
 
    
  '''End'''
+
  End
  
  
==Uso della funzione esterna ''system( )''==
+
==Uso della funzione esterna "system()"==
Mostriamo un esempio di apertura del Terminale ''gnome-terminal'' mediante la funzione esterna ''execv( )'', dichiarata nel file header "''/usr/include/stdlib.h''":
+
Mostriamo un esempio di apertura del Terminale ''gnome-terminal'' mediante la funzione esterna "system()", dichiarata nel file header "''/usr/include/stdlib.h'' ":
 
  <FONT color=Gray>' ''int system(const char *__command)''
 
  <FONT color=Gray>' ''int system(const char *__command)''
 
  ' ''Execute the given line as a shell command.''</font>
 
  ' ''Execute the given line as a shell command.''</font>
Riga 52: Riga 65:
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
  system_C(System.Find("gnome-terminal") & " -x " & System.Find("vlc") & "<FONT Color=gray>''/percorso/file/audio''</font>")
+
  system_C(System.Find("gnome-terminal") & " -x " & System.Find("cvlc") & " <FONT Color=gray>''/percorso/file/audio''</font>")
 
   
 
   
  '''End'''
+
  End
 
 
 
 
 
Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale ''xterm'':
 
Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale ''xterm'':
  <FONT color=Gray>' ''int system(const char *__command)''
+
<FONT color=Gray>' ''int system(const char *__command)''
 
  ' ''Execute the given line as a shell command.''</font>
 
  ' ''Execute the given line as a shell command.''</font>
 
  Private Extern system_C(__command As String) As Integer In "libc:6" Exec "system"
 
  Private Extern system_C(__command As String) As Integer In "libc:6" Exec "system"
 
   
 
   
 
   
 
   
  '''Public''' Sub Main()
+
  Public Sub Main()
 
   
 
   
  system_C(System.Find("xterm") & " -e " & System.Find("vlc") & "<FONT Color=gray>''/percorso/file/audio''</font>")
+
  system_C(System.Find("xterm") & " -e " & System.Find("cvlc") & " <FONT Color=gray>''/percorso/file/audio''</font>")
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 00:22, 14 ago 2023

Se si intende lanciare da un'applicazione Gambas il Terminale e far partire da esso un qualsiasi programma, è possibile utilizzare alcune modalità.

Uso della sola istruzione Shell

Per avviare attraverso l'istruzione Shell di Gambas un programma esterno da Terminale, si dovrà individuare il tipo di Terminale seguito da una opportuna opzione, la quale specifica il programma (e relativi argomenti della riga di comando) da eseguire nel Terminale prescelto.

Mostriamo un semplice esempio, nel quale si eseguirà un file audio con il lettore multimediale cvlc, avviato all'interno del Terminale "gnome-terminal":

Public Sub Main()

 Shell "gnome-terminal -x cvlc /percorso/file/audio"

End

In quest'altro esempio si userà il terminale "xterm":

Public Sub Main()

 Shell "xterm -e cvlc /percorso/file/audio"

End


Uso di Shell con il Metodo "System.Find()"

Mostriamo un esempio di apertura del Terminale gnome-terminal mediante Shelle il Metodo "System.Find()", e da lì l'avvio del programma cvlc per l'esecuzione di un file audio:

Public Sub Main()
 
  Shell System.Find("gnome-terminal") & " -x " & System.Find("cvlc") & " /percorso/file/audio" 
  
End

Lo stesso codice, ma ora usando il terminale xterm:

Public Sub Main()
 
 Shell System.Find("xterm") & " -e " & System.Find("cvlc") & " /percorso/file/audio" 
  
End


Uso della funzione esterna "execv()"

Mostriamo un esempio di apertura del Terminale gnome-terminal mediante la funzione esterna "execv()", dichiarata nel file header "/usr/include/unistd.h":

' int execv (const char *__path, char *const __argv[])
' Execute PATH with arguments ARGV and environment from `environ'.
Private Extern execv(path As String, argv As String[]) as Integer In "libc:6"


Public Sub Main()
  
 execv(System.Find("gnome-terminal"), [" ", "-x", System.Find("cvlc"), " /percorso/file/audio"])
  
End

Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale xterm:

' int execv (const char *__path, char *const __argv[])
' Execute PATH with arguments ARGV and environment from `environ'.
Private Extern execv(path As String, argv As String[]) as Integer In "libc:6"


Public Sub Main()
  
 execv(System.Find("xterm"), [" ", "-e", System.Find("cvlc"), " /percorso/file/audio"])
  
End


Uso della funzione esterna "system()"

Mostriamo un esempio di apertura del Terminale gnome-terminal mediante la funzione esterna "system()", dichiarata nel file header "/usr/include/stdlib.h ":

' int system(const char *__command)
' Execute the given line as a shell command.
Private Extern system_C(__command As String) As Integer In "libc:6" Exec "system"


Public Sub Main()

 system_C(System.Find("gnome-terminal") & " -x " & System.Find("cvlc") & " /percorso/file/audio")

End

Di seguito il medesimo esempio, ma utilizzando l'emulatore di Terminale xterm:

' int system(const char *__command)
' Execute the given line as a shell command.
Private Extern system_C(__command As String) As Integer In "libc:6" Exec "system"


Public Sub Main()

 system_C(System.Find("xterm") & " -e " & System.Find("cvlc") & " /percorso/file/audio")

End