Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

verificare se un processo è attivo in vb

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

verificare se un processo è attivo in vb

Messaggioda KillerPenguin » sab apr 14, 2012 2:39 pm

Salve, come al solito mi trovo qui a chiedere a chi ne sa più di me sul mondo del VB.
vorrei sapere come verificare tramite VB e un processo è attivo o meno, in particolar modo vorrei che se il processo preso in questione non è attivo compia delle operazioni mentre se è attivo ne compia delle altre. Qualcuno sa dirmi come fare? [boh]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: verificare se un processo è attivo in vb

Messaggioda developerwinme » sab apr 14, 2012 2:51 pm

Se per attivo intendi che "un processo con il nome in questione è in esecuzione", il punto di partenza è questo: http://msdn.microsoft.com/en-us/library/z3w4xdc9.aspx

In ogni caso, per il futuro, ti segnalo che MSDN è una ottima risorsa ufficiale dove cercare materiale di buon livello per documentarti. [;)]
PC: ASUS X53S (Intel Core i7-2670QM 2.20 Ghz, RAM 8 GB, NVIDIA GeForce GT520MX, Windows 8 Pro)
Mobile: Nokia Lumia 710 (CPU 1,4 Ghz, RAM 512 MB, Windows Phone 7.8)
--
developerwinme.wordpress.com
Avatar utente
developerwinme
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5014
Iscritto il: mar dic 30, 2008 7:00 pm
Località: Como

Re: verificare se un processo è attivo in vb

Messaggioda KillerPenguin » sab apr 14, 2012 3:38 pm

Si ma... non sto capendo come utilizzarlo... potresti farmi un esempio xFavore? [8)]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am


Re: verificare se un processo è attivo in vb

Messaggioda M@ttia » sab apr 14, 2012 5:25 pm

Scusa ma quale parte del link sopra non ti è chiara? C'è un esempio che mostra tutte le possibilità di cercare/selezionare i processi con nome, id, IP, ... che meglio di così non si può... Lo ri-copio qua sotto per comodità...
Codice: Seleziona tutto
Imports System
Imports System.Diagnostics
Imports System.ComponentModel


Namespace MyProcessSample
    _
   '/ <summary>
   '/ Shell for the sample.
   '/ </summary>
   Class MyProcess




      Sub BindToRunningProcesses()
         ' Get the current process.
         Dim currentProcess As Process = Process.GetCurrentProcess()


         ' Get all instances of Notepad running on the local
         ' computer.
         Dim localByName As Process() = Process.GetProcessesByName("notepad")


         ' Get all instances of Notepad running on the specifiec
         ' computer.
         ' 1. Using the computer alias (do not precede with "\\").
         Dim remoteByName As Process() = Process.GetProcessesByName("notepad", "myComputer")

         ' 2. Using an IP address to specify the machineName parameter.
         Dim ipByName As Process() = Process.GetProcessesByName("notepad", "169.0.0.0")


         ' Get all processes running on the local computer.
         Dim localAll As Process() = Process.GetProcesses()


         ' Get all processes running on the remote computer.
         Dim remoteAll As Process() = Process.GetProcesses("myComputer")


         ' Get a process on the local computer, using the process id.
         Dim localById As Process = Process.GetProcessById(1234)


         ' Get a process on a remote computer, using the process id.
         Dim remoteById As Process = Process.GetProcessById(2345, "myComputer")
      End Sub 'BindToRunningProcesses




      Shared Sub Main()

         Dim myProcess As New MyProcess()


         myProcess.BindToRunningProcesses()
      End Sub 'Main
   End Class 'MyProcess
End Namespace 'MyProcessSample
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: verificare se un processo è attivo in vb

Messaggioda KillerPenguin » sab apr 14, 2012 7:02 pm

Scusate ma non sto proprio capendo come fare a verificare se un processo è in esecuzione o meno [V]

ho capito che bisogna importare le istruzioni
Codice: Seleziona tutto
Imports System
Imports System.Diagnostics
Imports System.ComponentModel


ma per il resto il vuoto [sbigot]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am

Re: verificare se un processo è attivo in vb

Messaggioda M@ttia » dom apr 15, 2012 12:03 am

Poniamo l'esempio di voler verificare se il blocco note (notepad) è in esecuzione. Con:
Codice: Seleziona tutto
Dim ListaProcessi() As Process = Process.GetProcessesByName("notepad")

ti crei un array ListaProcessi contenente tutte le istanze di "notepad" aperte in quel momento (che possono essere 0, 1 o più di una magari). Se ti basta sapere se almeno un'istanza di notepad è aperta, allora farai:
Codice: Seleziona tutto
If ListaProcessi.Count > 0 Then
   Textbox1.text = "In Esecuzione"
Else
   Textbox1.text = "Non in Esecuzione"
End If


I vari Imports credo fossero necessari per l'esempio completo sopra ma penso che anche lasciandoli via vada comunque [;)]
</IE><FIREFOX>
Avatar utente
M@ttia
Moderatore
Moderatore
 
Messaggi: 8363
Iscritto il: lun giu 09, 2003 2:18 pm
Località: Ticino - Estero

Re: verificare se un processo è attivo in vb

Messaggioda developerwinme » dom apr 15, 2012 8:39 am

M@ttia ha scritto:I vari Imports credo fossero necessari per l'esempio completo sopra ma penso che anche lasciandoli via vada comunque

Credo che System.Diagnostics gli serva comunque. [uhm]
PC: ASUS X53S (Intel Core i7-2670QM 2.20 Ghz, RAM 8 GB, NVIDIA GeForce GT520MX, Windows 8 Pro)
Mobile: Nokia Lumia 710 (CPU 1,4 Ghz, RAM 512 MB, Windows Phone 7.8)
--
developerwinme.wordpress.com
Avatar utente
developerwinme
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 5014
Iscritto il: mar dic 30, 2008 7:00 pm
Località: Como

Re: verificare se un processo è attivo in vb

Messaggioda Andy94 » dom apr 15, 2012 8:53 am

System.Diagnostics non dovrebbe essere necessario, ho appena provato. Però mi permetto di apportare una correzione.
Count non è un membro di System.Array. Per ottenere la lunghezza di un array come ListaProcessi bisogna utilizzare GetLength.

Tutto il resto rimane uguale. [^]

[ciao]
Avatar utente
Andy94
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 9998
Iscritto il: lun apr 09, 2007 8:39 pm

Re: verificare se un processo è attivo in vb

Messaggioda KillerPenguin » dom apr 15, 2012 2:13 pm

M@ttia ha scritto:Poniamo l'esempio di voler verificare se il blocco note (notepad) è in esecuzione. Con:
Codice: Seleziona tutto
Dim ListaProcessi() As Process = Process.GetProcessesByName("notepad")

ti crei un array ListaProcessi contenente tutte le istanze di "notepad" aperte in quel momento (che possono essere 0, 1 o più di una magari). Se ti basta sapere se almeno un'istanza di notepad è aperta, allora farai:
Codice: Seleziona tutto
If ListaProcessi.Count > 0 Then
   Textbox1.text = "In Esecuzione"
Else
   Textbox1.text = "Non in Esecuzione"
End If


I vari Imports credo fossero necessari per l'esempio completo sopra ma penso che anche lasciandoli via vada comunque [;)]

[grazie] Grazie mille funziona [applauso+]


Andy94 ha scritto:
Count non è un membro di System.Array. Per ottenere la lunghezza di un array come ListaProcessi bisogna utilizzare GetLength.

Tutto il resto rimane uguale. [^]

ho provato a sostituire count con GetLength ma mi da errore [uhm]
www.TheKillerPenguin.Altervista.org
Avatar utente
KillerPenguin
Bronze Member
Bronze Member
 
Messaggi: 517
Iscritto il: lun feb 14, 2011 6:37 am


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising