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]]} | + | 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 !