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

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
L'argomento in questione tratta di come cercare, individuare e raccogliere il PID di un programma{[[#Note|1]]}, che non sia stato lanciato dal programma principale .gambas con ''process''.
+
L'argomento in questione tratta di come cercare, individuare e raccogliere il PID di un programma{[[#Note|1]]}.
 +
 
 +
<FONT color=#B22222>Caso in cui il programma esterno <SPAN style="text-decoration: underline">non</span> sia stato lanciato dal nostro programma.gambas, oppure <SPAN style="text-decoration: underline">non</span> sia gestito dal programma.gambas mediante ''process''.</font>
 
<BR>Mostremo la soluzione più breve con il comando bash: ''pgrep -f -l nome_programma''.
 
<BR>Mostremo la soluzione più breve con il comando bash: ''pgrep -f -l nome_programma''.
  
Riga 20: Riga 22:
 
  '''End'''
 
  '''End'''
  
 +
 +
<FONT color=#B22222>Caso in cui il programma esterno sia stato lanciato dal nostro programma.gambas e sia gestito mediante ''process''.</font>
 +
 +
Private hp As Process
 +
pid As Integer
 +
 +
'''Public''' Sub Button1_Click()
 +
 +
  hp = Shell "nome_programma"
 +
 +
<FONT color=#006400>' ''Il numero del PID di un programma esterno gestito mediante "process",''
 +
' ''ottenuto con il metodo " .Id" di Process, è uguale al numero del PID + 1 :''</font>
 +
    pid = hp.Id + 1
 +
 +
    Print pid
 +
 +
'''End'''
  
  
 
==Note==
 
==Note==
 
[1] Attenzione ! L'intento è quello di ottenere il PID del programma in quanto ''processo'', <SPAN style="text-decoration: underline">non</span> della ''finestra'' del programma !
 
[1] Attenzione ! L'intento è quello di ottenere il PID del programma in quanto ''processo'', <SPAN style="text-decoration: underline">non</span> della ''finestra'' del programma !

Versione delle 20:40, 14 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 stato lanciato dal nostro programma.gambas, oppure 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:
   Exec ["pgrep", "-f", "-l", "nome_programma"] Wait To index

' Suddividiamo la stringa, restituita da "pgrep" in tante sotto-stringhe,
' riempiendole con i singoli caratteri o con le parole diversi dagli spazi vuoti:
   sotto$ = Split(Trim$(index), " ")

' 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 di un programma esterno gestito mediante "process",
' ottenuto con il metodo " .Id" di 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 !