Differenze tra le versioni di "Individuare ed estrarre il PID di un programma"

Da Gambas-it.org - Wikipedia.
Riga 11: Riga 11:
 
    
 
    
 
  <FONT color=#006400>' ''Otteniamo il PID dei processo (programma) aperto:''</font>
 
  <FONT color=#006400>' ''Otteniamo il PID dei processo (programma) aperto:''</font>
     Exec ["pgrep", "-f", "-l", "nome_programma"] Wait To index
+
     Shell "pgrep -f nome_programma"] To index
 
   
 
   
  <FONT color=#006400>' ''Suddividiamo la stringa, restituita da "pgrep" in tante sotto-stringhe,''
+
  <FONT color=#006400>' ''la variabile index sarà composta da due righe, contenenti caratteri numerali e separate da un ritorno a capo.''
  ' ''riempiendole con i singoli caratteri o con le parole diversi dagli spazi vuoti:''</font>
+
  ' ''Le andremo a distinguere in due sotto-stringhe distinte:''</font>
     sotto$ = Split(Trim$(index), " ")
+
     sotto$ = Split(Trim$(index), "\n")
 
   
 
   
 
  <FONT color=#006400>' ''Poiché la <SPAN style="text-decoration: underline">prima</span> parola, restituita da "pgrep", è proprio il numero del PID del programma,''
 
  <FONT color=#006400>' ''Poiché la <SPAN style="text-decoration: underline">prima</span> parola, restituita da "pgrep", è proprio il numero del PID del programma,''

Versione delle 11:31, 17 mar 2012

L'argomento in questione tratta di come cercare, individuare e raccogliere il PID di un programma{1}.


Caso in cui il programma esterno non sia gestito dal programma.gambas mediante process.
Mostremo la soluzione più breve con il comando bash: pgrep -f -l nome_programma.

Public Sub Form_Open()

Dim index As String
Dim sotto$ As String[]
 
' Otteniamo il PID dei processo (programma) aperto:
   Shell "pgrep -f nome_programma"] To index

' la variabile index sarà composta da due righe, contenenti caratteri numerali e separate da un ritorno a capo.
' Le andremo a distinguere in due sotto-stringhe distinte:
   sotto$ = Split(Trim$(index), "\n")

' Poiché la prima parola, restituita da "pgrep", è proprio il numero del PID del programma,
' andiamo a leggere la prima sotto-stringa dell'array. Qui è contenuto il PID del programma:
   Print sotto$[0]

End


Caso in cui il programma esterno sia stato lanciato dal nostro programma.gambas e sia gestito mediante process.

Private hp As Process
pid As Integer

Public Sub Button1_Click()

 hp = Shell "nome_programma"

' Il numero del PID, ottenuto con il metodo " .Id" di Process,
' di un programma esterno gestito mediante "process", è uguale al numero del PID + 1 :
   pid = hp.Id + 1

   Print pid

End


Note

[1] Attenzione ! L'intento è quello di ottenere il PID del programma in quanto processo, non della finestra del programma !