<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
	<id>https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2.159.58.46</id>
	<title>Gambas-it.org - Wikipedia - Contributi dell&amp;#039;utente [it]</title>
	<link rel="self" type="application/atom+xml" href="https://www.gambas-it.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2.159.58.46"/>
	<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php/Speciale:Contributi/2.159.58.46"/>
	<updated>2026-10-23T07:39:05Z</updated>
	<subtitle>Contributi dell&amp;#039;utente</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4604</id>
		<title>Chiudere programmi esterni</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4604"/>
		<updated>2012-03-15T15:34:39Z</updated>

		<summary type="html">&lt;p&gt;2.159.58.46: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per terminare un programma esterno aperto è possibile usare '''Kill''' o '''Killall''' (a seconda delle situazioni).&lt;br /&gt;
&lt;br /&gt;
Va distinto però il ''Kill'', quale &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;metodo&amp;lt;/span&amp;gt; di ''Process'', dal ''Kill'', quale comando da utilizzare con ''Shell'' (o '' Exec'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il metodo &amp;quot;.Kill&amp;quot; di ''Process''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;{[[#Note|1]]}&lt;br /&gt;
&lt;br /&gt;
 Private hp As Process&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Avviamo un programma esterno e lo gestiamo come processo:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp = Exec[&amp;quot;nome_programma_esterno]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Chiudiamo il programma esterno mediante il metodo di ''Process'': Kill:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp.Kill&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia stato aperto dalla nostra applicazione.gambas, e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In questo caso potremo utilizzare due soluzioni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Killall'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il nome del programma:&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Killall ''nome_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Kill'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il numero del PID del programma {[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill ''numero_PID_del_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui il programma esterno sia stato aperto dalla nostra applicazione.gambas, e si intenda chiuderlo con il comando ''Kill''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possiamo avere due sotto-casi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Se il programma è gestito tramite ''Process'', possiamo passare al &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;comando&amp;lt;/span&amp;gt; ''Kill'' il numero del PID ottenuto mediante il metodo &amp;quot;'' .Id''&amp;quot; di &amp;quot;''Process''&amp;quot; con la modalità trattata in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2) &amp;lt;/b&amp;gt; Se il programma &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; è gestito mediante ''Process'', allora si dovrà scegliere un altro algoritmo per individuare e raccogliere il numero del PID del prgramma esterno da chiudere.&lt;br /&gt;
&lt;br /&gt;
Quello che è &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;da sottolineare&amp;lt;/span&amp;gt;, è che in entrambi i suddetti sotto-casi il numero del PID di un programma aperto &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;dalla nostra applicazione.gambas mediante ''Shell'' (o ''Exec'')&amp;lt;/span&amp;gt;, affinché l'esecuzione del comando &amp;quot;''Kill''&amp;quot; abbia buon fine, deve essere passato a ''Kill'' incrementato di un'unità:&lt;br /&gt;
&lt;br /&gt;
  '''Public''' Sub Button1_Click()&lt;br /&gt;
  &lt;br /&gt;
   Dim pidIncrementato As Integer&lt;br /&gt;
 &lt;br /&gt;
    pidIncrementato = ''numero_PID_del_programma_esterno'' '''+ 1'''&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill pidIncrementato&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
[1] Vedere al riguardo anche [[Apertura_e_chiusura_di_un_processo_mediante_&amp;quot;Process&amp;quot;|questa pagina]].&lt;br /&gt;
&lt;br /&gt;
[2] Come cercare ed estrarre il PID di un programma, è stato già trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].{[[#Note|3]]}&lt;br /&gt;
&lt;br /&gt;
[3] Potremmo utilizzare, per trovare e passare il PID di un programma aperto e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; gestito mediante &amp;quot;''Process''&amp;quot;, anche questo algoritmo:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;pgrep -f -l nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill il &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;primo&amp;lt;/span&amp;gt; elemento dell'array stringa,&lt;br /&gt;
 ' ''il quale, essendo parte della stringa generata dal comando &amp;quot;pgrep&amp;quot;,''&lt;br /&gt;
 ' ''contiene sempre il numero del PID del programma:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Shell &amp;quot;kill &amp;quot; &amp;amp; plus[0]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
oppure quest'altro che, però, procederà in modo un po' più... ''brutale'' alla chiusura del programma:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 Dim b As Integer&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;ps -aux | grep &amp;quot; &amp;amp; &amp;quot;nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  For b = 0 To plus.Max&lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill - &amp;quot;forzatamente&amp;quot; - ed in modo distinto ogni elemento dell'array stringa.&lt;br /&gt;
 ' ''Quando Kill riceverà l'elemento contenente la stringa con il numero del PID del programma, questo si chiuderà:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Try Shell &amp;quot;kill &amp;quot; &amp;amp; plus[b]&lt;br /&gt;
  Next&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;/div&gt;</summary>
		<author><name>2.159.58.46</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4603</id>
		<title>Chiudere programmi esterni</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4603"/>
		<updated>2012-03-15T15:33:43Z</updated>

		<summary type="html">&lt;p&gt;2.159.58.46: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per terminare un programma esterno aperto è possibile usare '''Kill''' o '''Killall''' (a seconda delle situazioni).&lt;br /&gt;
&lt;br /&gt;
Va distinto però il ''Kill'', quale &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;metodo&amp;lt;/span&amp;gt; di ''Process'', dal ''Kill'', quale comando da utilizzare con ''Shell'' (o '' Exec'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il metodo &amp;quot;.Kill&amp;quot; di ''Process''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;{[[#Note|1]]}&lt;br /&gt;
&lt;br /&gt;
 Private hp As Process&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Avviamo un programma esterno e lo gestiamo come processo:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp = Exec[&amp;quot;nome_programma_esterno]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Chiudiamo il programma esterno mediante il metodo di ''Process'': Kill:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp.Kill&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia stato aperto dalla nostra applicazione.gambas, e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In questo caso potremo utilizzare due soluzioni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Killall'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il nome del programma:&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Killall ''nome_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Kill'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il numero del PID del programma {[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill ''numero_PID_del_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui il programma esterno sia stato aperto dalla nostra applicazione.gambas, e si intenda chiuderlo con il comando ''Kill''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possiamo avere due sotto-casi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Se il programma è gestito tramite ''Process'', possiamo passare al &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;comando&amp;lt;/span&amp;gt; ''Kill'' il numero del PID ottenuto mediante il metodo &amp;quot;'' .Id''&amp;quot; di &amp;quot;''Process''&amp;quot; con la modalità trattata in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2) &amp;lt;/b&amp;gt; Se il programma &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; è gestito mediante ''Process'', allora si dovrà scegliere un altro algoritmo per individuare e raccogliere il numero del PID del prgramma esterno da chiudere.&lt;br /&gt;
&lt;br /&gt;
Quello che è &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;da sottolineare&amp;lt;/span&amp;gt;, è che in entrambi i suddetti sotto-casi il numero del PID di un programma aperto &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;dalla nostra applicazione.gambas&amp;lt;/span&amp;gt; mediante ''Shell'' (o ''Exec''), affinché l'esecuzione del comando &amp;quot;''Kill''&amp;quot; abbia buon fine, deve essere passato a ''Kill'' incrementato di un'unità:&lt;br /&gt;
&lt;br /&gt;
  '''Public''' Sub Button1_Click()&lt;br /&gt;
  &lt;br /&gt;
   Dim pidIncrementato As Integer&lt;br /&gt;
 &lt;br /&gt;
    pidIncrementato = ''numero_PID_del_programma_esterno'' '''+ 1'''&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill pidIncrementato&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
[1] Vedere al riguardo anche [[Apertura_e_chiusura_di_un_processo_mediante_&amp;quot;Process&amp;quot;|questa pagina]].&lt;br /&gt;
&lt;br /&gt;
[2] Come cercare ed estrarre il PID di un programma, è stato già trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].{[[#Note|3]]}&lt;br /&gt;
&lt;br /&gt;
[3] Potremmo utilizzare, per trovare e passare il PID di un programma aperto e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; gestito mediante &amp;quot;''Process''&amp;quot;, anche questo algoritmo:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;pgrep -f -l nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill il &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;primo&amp;lt;/span&amp;gt; elemento dell'array stringa,&lt;br /&gt;
 ' ''il quale, essendo parte della stringa generata dal comando &amp;quot;pgrep&amp;quot;,''&lt;br /&gt;
 ' ''contiene sempre il numero del PID del programma:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Shell &amp;quot;kill &amp;quot; &amp;amp; plus[0]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
oppure quest'altro che, però, procederà in modo un po' più... ''brutale'' alla chiusura del programma:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 Dim b As Integer&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;ps -aux | grep &amp;quot; &amp;amp; &amp;quot;nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  For b = 0 To plus.Max&lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill - &amp;quot;forzatamente&amp;quot; - ed in modo distinto ogni elemento dell'array stringa.&lt;br /&gt;
 ' ''Quando Kill riceverà l'elemento contenente la stringa con il numero del PID del programma, questo si chiuderà:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Try Shell &amp;quot;kill &amp;quot; &amp;amp; plus[b]&lt;br /&gt;
  Next&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;/div&gt;</summary>
		<author><name>2.159.58.46</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4602</id>
		<title>Chiudere programmi esterni</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4602"/>
		<updated>2012-03-15T15:20:10Z</updated>

		<summary type="html">&lt;p&gt;2.159.58.46: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per terminare un programma esterno aperto è possibile usare '''Kill''' o '''Killall''' (a seconda delle situazioni).&lt;br /&gt;
&lt;br /&gt;
Va distinto però il ''Kill'', quale &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;metodo&amp;lt;/span&amp;gt; di ''Process'', dal ''Kill'', quale comando da utilizzare con ''Shell'' (o '' Exec'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il metodo &amp;quot;.Kill&amp;quot; di ''Process''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;{[[#Note|1]]}&lt;br /&gt;
&lt;br /&gt;
 Private hp As Process&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Avviamo un programma esterno e lo gestiamo come processo:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp = Exec[&amp;quot;nome_programma_esterno]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Chiudiamo il programma esterno mediante il metodo di ''Process'': Kill:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp.Kill&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia stato aperto dalla nostra applicazione.gambas, e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In questo caso potremo utilizzare due soluzioni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Killall'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il nome del programma:&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Killall ''nome_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Kill'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il numero del PID del programma {[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill ''numero_PID_del_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui il programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il comando ''Kill''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possiamo passare al &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;comando&amp;lt;/span&amp;gt; ''Kill'' anche il PID, ottenuto con il metodo &amp;quot;.Id&amp;quot; di Process, di un programma esterno lanciato dal nostro programma.gambas e gestito mediante &amp;quot;''Process''&amp;quot;.&lt;br /&gt;
&amp;lt;BR&amp;gt;L'algoritmo, per ottenere il numero del PID mediante il metodo &amp;quot;'' .Id''&amp;quot; di &amp;quot;''Process''&amp;quot;, è trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].&lt;br /&gt;
Come anche vediamo in quella pagina, il numero del PID di un programma aperto &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;dalla nostra applicazione.gambas&amp;lt;/span&amp;gt; mediante ''Shell'' (o ''Exec''), affinché l'esecuzione del comando &amp;quot;''Kill''&amp;quot; abbia buon fine, deve essere passato a ''Kill'' incrementato di un'unità:&lt;br /&gt;
&lt;br /&gt;
  '''Public''' Sub Button1_Click()&lt;br /&gt;
  &lt;br /&gt;
   Dim pidIncrementato As Integer&lt;br /&gt;
 &lt;br /&gt;
    pidIncrementato = ''numero_PID_del_programma_esterno'' '''+ 1'''&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill pidIncrementato&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
[1] Vedere al riguardo anche [[Apertura_e_chiusura_di_un_processo_mediante_&amp;quot;Process&amp;quot;|questa pagina]].&lt;br /&gt;
&lt;br /&gt;
[2] Come cercare ed estrarre il PID di un programma, è stato già trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].{[[#Note|3]]}&lt;br /&gt;
&lt;br /&gt;
[3] Potremmo utilizzare, per trovare e passare il PID di un programma aperto e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; gestito mediante &amp;quot;''Process''&amp;quot;, anche questo algoritmo:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;pgrep -f -l nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill il &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;primo&amp;lt;/span&amp;gt; elemento dell'array stringa,&lt;br /&gt;
 ' ''il quale, essendo parte della stringa generata dal comando &amp;quot;pgrep&amp;quot;,''&lt;br /&gt;
 ' ''contiene sempre il numero del PID del programma:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Shell &amp;quot;kill &amp;quot; &amp;amp; plus[0]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
oppure quest'altro che, però, procederà in modo un po' più... ''brutale'' alla chiusura del programma:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 Dim b As Integer&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;ps -aux | grep &amp;quot; &amp;amp; &amp;quot;nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  For b = 0 To plus.Max&lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill - &amp;quot;forzatamente&amp;quot; - ed in modo distinto ogni elemento dell'array stringa.&lt;br /&gt;
 ' ''Quando Kill riceverà l'elemento contenente la stringa con il numero del PID del programma, questo si chiuderà:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Try Shell &amp;quot;kill &amp;quot; &amp;amp; plus[b]&lt;br /&gt;
  Next&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;/div&gt;</summary>
		<author><name>2.159.58.46</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4601</id>
		<title>Chiudere programmi esterni</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4601"/>
		<updated>2012-03-15T15:16:27Z</updated>

		<summary type="html">&lt;p&gt;2.159.58.46: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per terminare un programma esterno aperto è possibile usare '''Kill''' o '''Killall''' (a seconda delle situazioni).&lt;br /&gt;
&lt;br /&gt;
Va distinto però il ''Kill'', quale &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;metodo&amp;lt;/span&amp;gt; di ''Process'', dal ''Kill'', quale comando da utilizzare con ''Shell'' (o '' Exec'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno sia stato aperto dalla nostra applicazione.gambas, e sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;{[[#Note|1]]}&lt;br /&gt;
&lt;br /&gt;
 Private hp As Process&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Avviamo un programma esterno e lo gestiamo come processo:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp = Exec[&amp;quot;nome_programma_esterno]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Chiudiamo il programma esterno mediante il metodo di ''Process'': Kill:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp.Kill&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia stato aperto dalla nostra applicazione.gambas, e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In questo caso potremo utilizzare due soluzioni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Killall'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il nome del programma:&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Killall ''nome_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Kill'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il numero del PID del programma {[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill ''numero_PID_del_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui il programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il comando ''Kill''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possiamo passare al &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;comando&amp;lt;/span&amp;gt; ''Kill'' anche il PID, ottenuto con il metodo &amp;quot;.Id&amp;quot; di Process, di un programma esterno lanciato dal nostro programma.gambas e gestito mediante &amp;quot;''Process''&amp;quot;.&lt;br /&gt;
&amp;lt;BR&amp;gt;L'algoritmo, per ottenere il numero del PID mediante il metodo &amp;quot;'' .Id''&amp;quot; di &amp;quot;''Process''&amp;quot;, è trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].&lt;br /&gt;
Come anche vediamo in quella pagina, il numero del PID di un programma aperto &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;dalla nostra applicazione.gambas&amp;lt;/span&amp;gt; mediante ''Shell'' (o ''Exec''), affinché l'esecuzione del comando &amp;quot;''Kill''&amp;quot; abbia buon fine, deve essere passato a ''Kill'' incrementato di un'unità:&lt;br /&gt;
&lt;br /&gt;
  '''Public''' Sub Button1_Click()&lt;br /&gt;
  &lt;br /&gt;
   Dim pidIncrementato As Integer&lt;br /&gt;
 &lt;br /&gt;
    pidIncrementato = ''numero_PID_del_programma_esterno'' '''+ 1'''&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill pidIncrementato&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
[1] Vedere al riguardo anche [[Apertura_e_chiusura_di_un_processo_mediante_&amp;quot;Process&amp;quot;|questa pagina]].&lt;br /&gt;
&lt;br /&gt;
[2] Come cercare ed estrarre il PID di un programma, è stato già trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].{[[#Note|3]]}&lt;br /&gt;
&lt;br /&gt;
[3] Potremmo utilizzare, per trovare e passare il PID di un programma aperto e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; gestito mediante &amp;quot;''Process''&amp;quot;, anche questo algoritmo:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;pgrep -f -l nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill il &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;primo&amp;lt;/span&amp;gt; elemento dell'array stringa,&lt;br /&gt;
 ' ''il quale, essendo parte della stringa generata dal comando &amp;quot;pgrep&amp;quot;,''&lt;br /&gt;
 ' ''contiene sempre il numero del PID del programma:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Shell &amp;quot;kill &amp;quot; &amp;amp; plus[0]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
oppure quest'altro che, però, procederà in modo un po' più... ''brutale'' alla chiusura del programma:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 Dim b As Integer&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;ps -aux | grep &amp;quot; &amp;amp; &amp;quot;nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  For b = 0 To plus.Max&lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill - &amp;quot;forzatamente&amp;quot; - ed in modo distinto ogni elemento dell'array stringa.&lt;br /&gt;
 ' ''Quando Kill riceverà l'elemento contenente la stringa con il numero del PID del programma, questo si chiuderà:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Try Shell &amp;quot;kill &amp;quot; &amp;amp; plus[b]&lt;br /&gt;
  Next&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;/div&gt;</summary>
		<author><name>2.159.58.46</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4600</id>
		<title>Chiudere programmi esterni</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4600"/>
		<updated>2012-03-15T15:15:23Z</updated>

		<summary type="html">&lt;p&gt;2.159.58.46: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per terminare un programma esterno aperto è possibile usare '''Kill''' o '''Killall''' (a seconda delle situazioni).&lt;br /&gt;
&lt;br /&gt;
Va distinto però il ''Kill'', quale &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;metodo&amp;lt;/span&amp;gt; di ''Process'', dal ''Kill'', quale comando da utilizzare con ''Shell'' (o '' Exec'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno sia stato aperto dalla nostra applicazione.gambas, e sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;{[[#Note|1]]}&lt;br /&gt;
&lt;br /&gt;
 Private hp As Process&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Avviamo un programma esterno e lo gestiamo come processo:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp = Exec[&amp;quot;nome_programma_esterno]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Chiudiamo il programma esterno mediante il metodo di ''Process'': Kill:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp.Kill&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia stato aperto dalla nostra applicazione.gambas, e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In questo caso potremo utilizzare due soluzioni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Killall'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il nome del programma:&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Killall ''nome_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Kill'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il numero del PID del programma {[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill ''numero_PID_del_programma_esterno''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui il programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il comando ''Kill''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possiamo passare al &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;comando&amp;lt;/span&amp;gt; ''Kill'' anche il PID, ottenuto con il metodo &amp;quot;.Id&amp;quot; di Process, di un programma esterno lanciato dal nostro programma.gambas e gestito mediante &amp;quot;''Process''&amp;quot;.&lt;br /&gt;
&amp;lt;BR&amp;gt;L'algoritmo, per ottenere il numero del PID mediante il metodo &amp;quot;'' .Id''&amp;quot; di &amp;quot;''Process''&amp;quot;, è trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].&lt;br /&gt;
Come anche vediamo in quella pagina, il numero del PID di un programma aperto &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;dalla nostra applicazione.gambas&amp;lt;/span&amp;gt; mediante ''Shell'' (o ''Exec''), affinché l'esecuzione del comando &amp;quot;''Kill''&amp;quot; abbia buon fine, deve essere passato a ''Kill'' incrementato di un'unità:&lt;br /&gt;
&lt;br /&gt;
  '''Public''' Sub Button1_Click()&lt;br /&gt;
  &lt;br /&gt;
   Dim pidIncrementato As Integer&lt;br /&gt;
 &lt;br /&gt;
    pidIncrementato = ''numero_PID_del_programma_esterno'' + 1&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill pidIncrementato&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
[1] Vedere al riguardo anche [[Apertura_e_chiusura_di_un_processo_mediante_&amp;quot;Process&amp;quot;|questa pagina]].&lt;br /&gt;
&lt;br /&gt;
[2] Come cercare ed estrarre il PID di un programma, è stato già trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].{[[#Note|3]]}&lt;br /&gt;
&lt;br /&gt;
[3] Potremmo utilizzare, per trovare e passare il PID di un programma aperto e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; gestito mediante &amp;quot;''Process''&amp;quot;, anche questo algoritmo:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;pgrep -f -l nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill il &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;primo&amp;lt;/span&amp;gt; elemento dell'array stringa,&lt;br /&gt;
 ' ''il quale, essendo parte della stringa generata dal comando &amp;quot;pgrep&amp;quot;,''&lt;br /&gt;
 ' ''contiene sempre il numero del PID del programma:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Shell &amp;quot;kill &amp;quot; &amp;amp; plus[0]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
oppure quest'altro che, però, procederà in modo un po' più... ''brutale'' alla chiusura del programma:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 Dim b As Integer&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;ps -aux | grep &amp;quot; &amp;amp; &amp;quot;nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  For b = 0 To plus.Max&lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill - &amp;quot;forzatamente&amp;quot; - ed in modo distinto ogni elemento dell'array stringa.&lt;br /&gt;
 ' ''Quando Kill riceverà l'elemento contenente la stringa con il numero del PID del programma, questo si chiuderà:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Try Shell &amp;quot;kill &amp;quot; &amp;amp; plus[b]&lt;br /&gt;
  Next&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;/div&gt;</summary>
		<author><name>2.159.58.46</name></author>
	</entry>
	<entry>
		<id>https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4599</id>
		<title>Chiudere programmi esterni</title>
		<link rel="alternate" type="text/html" href="https://www.gambas-it.org/wiki/index.php?title=Chiudere_programmi_esterni&amp;diff=4599"/>
		<updated>2012-03-15T15:14:18Z</updated>

		<summary type="html">&lt;p&gt;2.159.58.46: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Per terminare un programma esterno aperto è possibile usare '''Kill''' o '''Killall''' (a seconda delle situazioni).&lt;br /&gt;
&lt;br /&gt;
Va distinto però il ''Kill'', quale &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;metodo&amp;lt;/span&amp;gt; di ''Process'', dal ''Kill'', quale comando da utilizzare con ''Shell'' (o '' Exec'').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno sia stato aperto dalla nostra applicazione.gambas, e sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;{[[#Note|1]]}&lt;br /&gt;
&lt;br /&gt;
 Private hp As Process&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Form_Open()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Avviamo un programma esterno e lo gestiamo come processo:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp = Exec[&amp;quot;nome_programma_esterno]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Chiudiamo il programma esterno mediante il metodo di ''Process'': Kill:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    hp.Kill&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui un programma esterno &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia stato aperto dalla nostra applicazione.gambas, e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; sia gestito mediante &amp;quot;''process''&amp;quot;&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In questo caso potremo utilizzare due soluzioni.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;1)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Killall'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il nome del programma:&lt;br /&gt;
 &lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Killall ''nome_programma''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;2)&amp;lt;/b&amp;gt; Possiamo chiudere il programma esterno con il comando ''Kill'', lanciato con ''Shell'' (o '' Exec''), al quale passiamo il numero del PID del programma {[[#Note|2]]}.&lt;br /&gt;
&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
    Shell &amp;quot;Kill ''numero_PID_del_programma''&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;FONT color=#B22222&amp;gt;Caso in cui il programma esterno sia stato aperto dalla nostra applicazione.gambas, sia gestito mediante &amp;quot;''process''&amp;quot;, e si intenda chiuderlo con il comando ''Kill''&amp;lt;/font&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Possiamo passare al &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;comando&amp;lt;/span&amp;gt; ''Kill'' anche il PID, ottenuto con il metodo &amp;quot;.Id&amp;quot; di Process, di un programma esterno lanciato dal nostro programma.gambas e gestito mediante &amp;quot;''Process''&amp;quot;.&lt;br /&gt;
&amp;lt;BR&amp;gt;L'algoritmo, per ottenere il numero del PID mediante il metodo &amp;quot;'' .Id''&amp;quot; di &amp;quot;''Process''&amp;quot;, è trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].&lt;br /&gt;
Come anche vediamo in quella pagina, il numero del PID di un programma aperto &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;dalla nostra applicazione.gambas&amp;lt;/span&amp;gt; mediante ''Shell'' (o ''Exec''), affinché l'esecuzione del comando &amp;quot;''Kill''&amp;quot; abbia buon fine, deve essere passato a ''Kill'' incrementato di un'unità:&lt;br /&gt;
&lt;br /&gt;
  '''Public''' Sub Button1_Click()&lt;br /&gt;
  &lt;br /&gt;
   Dim pidIncrementato As Integer&lt;br /&gt;
&lt;br /&gt;
    pidIncrementato = ''numero_del_PID'' + 1&lt;br /&gt;
&lt;br /&gt;
    Shell &amp;quot;Kill pidIncrementato&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Note==&lt;br /&gt;
[1] Vedere al riguardo anche [[Apertura_e_chiusura_di_un_processo_mediante_&amp;quot;Process&amp;quot;|questa pagina]].&lt;br /&gt;
&lt;br /&gt;
[2] Come cercare ed estrarre il PID di un programma, è stato già trattato in [[Individuare_ed_estrarre_il_PID_di_un_programma|questa pagina specifica]].{[[#Note|3]]}&lt;br /&gt;
&lt;br /&gt;
[3] Potremmo utilizzare, per trovare e passare il PID di un programma aperto e &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;non&amp;lt;/span&amp;gt; gestito mediante &amp;quot;''Process''&amp;quot;, anche questo algoritmo:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;pgrep -f -l nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill il &amp;lt;SPAN style=&amp;quot;text-decoration:underline&amp;quot;&amp;gt;primo&amp;lt;/span&amp;gt; elemento dell'array stringa,&lt;br /&gt;
 ' ''il quale, essendo parte della stringa generata dal comando &amp;quot;pgrep&amp;quot;,''&lt;br /&gt;
 ' ''contiene sempre il numero del PID del programma:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Shell &amp;quot;kill &amp;quot; &amp;amp; plus[0]&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;br /&gt;
&lt;br /&gt;
oppure quest'altro che, però, procederà in modo un po' più... ''brutale'' alla chiusura del programma:&lt;br /&gt;
 '''Public''' Sub Button1_Click()&lt;br /&gt;
 &lt;br /&gt;
 Dim riga As String&lt;br /&gt;
 Dim plus As String[]&lt;br /&gt;
 Dim b As Integer&lt;br /&gt;
 &lt;br /&gt;
  Shell &amp;quot;ps -aux | grep &amp;quot; &amp;amp; &amp;quot;nome_programma_da_chiudere&amp;quot; To riga&lt;br /&gt;
 &lt;br /&gt;
  plus = Split(riga, &amp;quot; &amp;quot;)&lt;br /&gt;
 &lt;br /&gt;
  For b = 0 To plus.Max&lt;br /&gt;
 &amp;lt;FONT color=#006400&amp;gt;' ''Passa a Kill - &amp;quot;forzatamente&amp;quot; - ed in modo distinto ogni elemento dell'array stringa.&lt;br /&gt;
 ' ''Quando Kill riceverà l'elemento contenente la stringa con il numero del PID del programma, questo si chiuderà:''&amp;lt;/font&amp;gt;&lt;br /&gt;
    Try Shell &amp;quot;kill &amp;quot; &amp;amp; plus[b]&lt;br /&gt;
  Next&lt;br /&gt;
 &lt;br /&gt;
 '''End'''&lt;/div&gt;</summary>
		<author><name>2.159.58.46</name></author>
	</entry>
</feed>