Differenze tra le versioni di "Conoscere in tempo reale il numero dell´ultimo processo appena aperto"

Da Gambas-it.org - Wikipedia.
 
(14 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Per conoscere l'ultimo processo aperto bisognerà interrogare la cartella ''proc'' del ''File System'', la quale contiene - fra l'altro - le sub-cartelle dei processi aperti.
+
#REDIRECT [[Conoscere_in_tempo_reale_il_numero_dell'ultimo_processo_appena_aperto]]
 
 
Nell'esempio, che segue, si andrà a leggere nella cartella ''proc'' ogni 150 millesimi di secondo mediante l'attivazione di un ''Timer'', per conoscere in tempo reale il numero dell'ultimo processo appena aperto, nonché il file lanciato ed il suo programma esecutore.
 
'''Public''' Sub Form_Open()
 
 
  With Timer1
 
    .delay = 150
 
    .Start
 
  End With
 
 
 
'''End'''
 
 
 
'''Public''' Sub Timer1_Timer() 
 
 
  Dim s As String
 
  Dim ss As String[]
 
 
<FONT color=gray>' ''Ogni ms 150 si legge tutto il contenuto della cartella "proc".''
 
' ''Se il contenuto letto è una cartella, allora vuol dire che si tratta di un processo.''
 
' ''Risulterà visibile, come effetto, l'ultimo processo in ordine di tempo aperto:''</font>
 
    For Each s In Dir("/proc", "", gb.Directory)
 
      TextEdit1.RichText = "Processo:  &lt;BR>&lt;FONT color=#FF0000>" & s
 
    Next
 
       
 
    Try ss = Split(File.Load("/proc" &/ s &/ "cmdline"), "/")
 
 
    Try TextEdit1.RichText &= "&lt;BR>&lt;FONT color=#000000>File eseguito:  &lt;BR>&lt;FONT color=#FF0000>" &
 
    Replace(ss[ss.Max], Chr(0), "&lt;p>&lt;FONT color=#000000>Esecutore:  &lt;BR>&lt;FONT color=#FF0000>") &
 
    Replace(ss[0], Chr(0), "")
 
 
'''End'''
 
 
 
 
 
 
 
===con un'applicazione 'a riga di comando'===
 
Se l'applicazione Gambas è 'a riga di comando', potremo servirci di un ciclo:
 
'''Public''' Sub Main()
 
 
  Dim b As Byte
 
  Dim s As String
 
  Dim ss As String[]
 
 
<FONT color=gray>' ''Verifichiamo inizialmente quante cartelle sono presenti in "/proc":''</font>
 
  b = Dir("/proc", Null, gb.Directory).Count
 
 
  Do
 
    Wait 0.1
 
  Loop Until b < Dir("/proc", Null, gb.Directory).Count
 
 
<FONT color=gray>' ''L'ultima cartella dell'indice di "/proc" è l'ultimo processo appena aperto:''</font>
 
  s = Dir("/proc", Null, gb.Directory)[Dir("/proc", Null, gb.Directory).Max]
 
     
 
  Print "Processo: "; s
 
     
 
  Try ss = Split(File.Load("/proc" &/ s &/ "cmdline"), "/")
 
 
  Print "File eseguito:  "
 
  Try Print Replace(ss[ss.Max], Chr(0), "\nEsecutore:  ")
 
  Try Print Replace(ss[0], Chr(0), Null)
 
 
'''End'''
 

Versione attuale delle 08:57, 6 set 2020