• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida Classe Process e piccolo Task Manager

ScaredNatsu

Utente Attivo
Autore del topic
28 Ottobre 2010
298
0
Miglior risposta
0
300px-NET_h_rgb_2.png
Eccoci qui con una guida di introduzione alla classe Process!
In questa guida impareremo a creare un piccolo taskmanager con una form di esecuzione di un processo ;D
Allora requisiti:
-
Perfavore, Entra oppure Registrati per vedere i Link!

-Un cervello e degl'occhi(XD)
-Conoscenze basilarissime.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~µ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Perfetto, andiamo a creare una form e dategli il nome che volete
Per chi non lo sapesse, la form è il nostro ambiente di sviluppo grafico.
Creare un componente chiamato "LISTBOX" e dategli una largezza/altezza di vostro gradimento.
Prendiamo un bottone e chiamiamolo aggiorna, così ogni volta che cliccheremo il bottone la lista si aggiornerà :emoji_smiley:
Clicchiamo 2 volte sul bottone e scriviamo:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Con questo codice abbiamo dichiarato "p" come "GetProcesses" ovvero questa lettera sostituirà "System.Diagnostics.Process.GetProcesses".Tuttavia può essere abbreviato anche in "Process.GetProcesses".
Sperando che avete capito, passiamo avanti:
Dichiariamo un'altra variabile con il ciclo For
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Benissimo, questa variabile "t" ci darà i processi ad uno ad uno.
Se fin qui non avete capito, non capirete il resto xD
Fino ad ora non abbiamo ottenuto niente di rilevante, dato che gli item della listbox non sono stati "acquisiti" ed è proprio questo quello che vedremo ora:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Con questa stringa abbiamo dato gli elementi alla ListBox1, infatti abbiamo detto che:
Gli elementi della listbox1 sono uguali a i nome dei processi della variabile p + l'estensione .exe.
Ok...Abbiamo aggiornato i processi.
Ora vediamo come far terminare 'sti maledetti processi!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~||Process||~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Allora, un metodo stupendo per killare i processi è proprio il TaskKill, ma non è per visual basic, infatti è un comando utilizzato nel prompt dei comandi.Cosa si fa per implementare il prompt dei comandi in VB.NET?Si usa un comando apposito chiamato "Shell" ovvero il nome inglese del cmd.
Benissimo, ma prima di utilizzare questo...Dobbiamo specificare una variabile mucho importante, di tipo String(ovvero testo):
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Abbiamo, come detto sopra, specificato la variabile "nomeprocesso" però con un'aggiunta: "Listbox1.SelectedItem".In poche parole questa variabile è di tipo testo, però l'elemento scelto si converte a sua volta in string e fornisce il testo alla variabile.
Ora dobbiamo killare il processo con la shell:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Come detto molto più sopra utilizziamo il comando taskkill ma il nome del processo è fornito da nomeprocesso.
Ora vedremo come avviare un processo.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~■Starting■~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Eccoci di nuovo qui:Startiamo un processo.
Quest'operazione è molto facile dato che ci serve:
Una Textbox
Un Bottone
Tutto qui.
Ora vediamo il codice e spieghiamolo(che codice: 1 rigo xD)
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
beh, non c'è un granchè da spiegare xD
Comunque starta il processo scritto nella textbox...
Per renderlo più funzionale possiamo far immettere solo il nome del programma, modificando la stringa così:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!
Finito, ora avete, se avete letto la guida, imparato ad usare, in minime parti, la classe "Process".
Per domande contattatemi nella discussione
10opwcl.png
 
Ultima modifica:
Riferimento: Classe Process e piccolo Task Manager

Con questo codice abbiamo dichiarato "p" come "GetProcesses" ovvero questa lettera sostituirà "System.Diagnostics.Process.GetProcesses".

Da quando in qua una funzione dichiara una variabile ? La funzione GetProcesses() non dichiara p, è solo un array che contiene i processi in esecuzione sul computer. Praticamente questa istruzione può essere interpretata così "prendi i processi in esecuzione e metti nella variabile "p", che sarà un array".

Ora vediamo come far terminare 'sti maledetti processi!

Poveracci che ti hanno fatto di male ?

Allora, un metodo stupendo per killare i processi è proprio il TaskKill

Il metodo non è stupendo perché se esistono delle funzioni, come Kill(), per "killare" i processi allora bisogna usare quelle.

Si usa un comando apposito chiamato "Shell" ovvero il nome inglese del cmd.

La funzione Shell() è del VB6, in VB.NET si usa Process.Start() [ fai una guida sulla classe Process e non sai queste cose ? non va bene ]

In conclusione : non capisco se è una guida sulla classe Process o su come creare un "piccolo task manager".
 
Ultima modifica:
Riferimento: Classe Process e piccolo Task Manager

Da quando in qua una funzione dichiara una variabile ? La funzione GetProcesses() non dichiara p, è solo un array che contiene i processi in esecuzione sul computer. Praticamente questa istruzione può essere interpretata così "prendi i processi in esecuzione e metti nella variabile "p", che sarà un array".



Poveracci che ti hanno fatto di male ?



Il metodo non è stupendo perché se esistono delle funzioni, come Kill(), per "killare" i processi allora bisogna usare quelle.



La funzione Shell() è del VB6, in VB.NET si usa Process.Start() [ fai una guida sulla classe Process e non sai queste cose ? non va bene ]

In conclusione : non capisco se è una guida sulla classe Process o su come creare un "piccolo task manager".
Aspetta aspetta...l'ultima parte della shell l'ho usata per terminare un processo, non per avviarlo.
Process.start l'ho utilizzando per l'avvio dei processi
>.< Giusto per il kill, praticamente io cercavo la funzione "Terminate" che non esiste, grazie comunque per avermelo insegnato.
Scusa, non ho capito una cosa, di solito dim serve per dichiarare una variabile...che c'entrano gli array?XD seriamente ora...dim di solito non si usa per dichiarare?
 
Riferimento: Classe Process e piccolo Task Manager

Aspetta aspetta...l'ultima parte della shell l'ho usata per terminare un processo, non per avviarlo.

Non farti ingannare dal nome -> la funzione Start() della classe Process non fa altro che eseguire comandi come se li stessi digitando sul prompt dei comandi.

Scusa, non ho capito una cosa, di solito dim serve per dichiarare una variabile...che c'entrano gli array?XD seriamente ora...dim di solito non si usa per dichiarare?

Ahia...vedo che non conosci proprio la teoria...La keyword Dim seguita dal nome della variabile e dal suo tipo serve sì per la dichiarazione e in questo caso ma dal momento che la funzione GetProcesses() restituisce un array di stringhe ( che contengono il nome dei processi ) di conseguenza la variabile è anch'essa un array.
 
Riferimento: Classe Process e piccolo Task Manager

Ah, adesso ho capito.Comunque preferisco di gran lunga la shell(per me.).Non è che non conosco la teoria...io la keyword dim l'ho sempre utilizzata per dichiarare variabili, non pensavo proprio che la funzione getprocesses restituiva gli array.
Ti ringrazio, sei un ottimo maestro ^^
 
Riferimento: Classe Process e piccolo Task Manager

Comunque preferisco di gran lunga la shell(per me.)

Sì ma è LOGICAMENTE sbagliato.

Non è che non conosco la teoria...

...non insistere.

io la keyword dim l'ho sempre utilizzata per dichiarare variabili

...ma infatti la keyword Dim SERVE PER DICHIARARE LE VARIABILI.

non pensavo proprio che la funzione getprocesses restituiva gli array.

...quindi non conosci la teoria...
 
Riferimento: Classe Process e piccolo Task Manager

Io ho studiato il vb.net su un e-book .pdf.Non ho letto la definizione di GetProcesses() su msdn.
Ma se io mi trovo ad usare le shell perchè dovete dire che è logicamente sbagliato se poi con Process.Start non mi trovo?Si, sono abituato al vb6 problemi?xD
 
Riferimento: Classe Process e piccolo Task Manager

Io ho studiato il vb.net su un e-book .pdf.Non ho letto la definizione di GetProcesses() su msdn.

Hai fatto male, si capisce chiaramente che non hai capito quello che hai scritto.

Ma se io mi trovo ad usare le shell perchè dovete dire che è logicamente sbagliato se poi con Process.Start non mi trovo?

Ma che significa "mi trovi ad usare Shell() e non Process.Start()" ? Sono la stessa cosa solo che la prima è del VB6 ( si può utilizzare anche nel VB.NET ma non è logicamente giusto perché è del VB6 ) la seconda invece è più specifica per il .NET Framework.

Si, sono abituato al vb6 problemi?xD

Nessun problema ma quantomeno evita di dire che ti trovi di più con Shell()...
 
Riferimento: Classe Process e piccolo Task Manager

Lo so ho sbagliato a non leggere la teoria sull'msdn, però ti ridico che sono molto abituato con la shell, non è colpa mia xD