Process ID

Résolu
Ethan0026
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008
- 26 juin 2008 à 12:15
Ethan0026
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008
- 27 juin 2008 à 10:22
Bonjour,

Je voudrais récupérer l'ID d'un process en cours (g deja le nom)
J'ai deja essayer ceci mais ça ne marche pas (on peut pas voir l'ID):



Dim
localByName

As
Process() = System.Diagnostics.Process.GetProcessesByName(

"acrobat"
)

Merci d'avance

8 réponses

Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
27 juin 2008 à 07:17
"ID n'est pas une instance de System.Diagnostics.Process.GetProcessesByName"
c'est syntaxiquement correct, cette phrase ?

je viens de faire le test, et j'ai en fait remarqué que c'était pas
GetProcessByName
mais
GetProcessesByName

en gros, la fonction renvoie un tableau de process
voilà pourquoi

"ID n'est pas une PROPRIETE de System.Diagnostics.Process.GetProcessesByName"



j'ai testé ça:

Dim oLaunchedProcess As Process
oLaunchedProcess = Process.Start("Calc.exe", vbNullString)

Dim oFoundProcess As Process
oFoundProcess = Process.GetProcessesByName("calc")(0)

MessageBox.Show("Launched : " & oLaunchedProcess.Id.ToString() & vbNewLine & _
"Found : " & oFoundProcess.Id.ToString())
3
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
26 juin 2008 à 13:36
0
Ethan0026
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

26 juin 2008 à 14:46
ok je vais voir merci
0
Ethan0026
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

26 juin 2008 à 15:46
bcp trop compliqué par rapport à ce que je veux faire !

Qui aurait la solution ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 juin 2008 à 16:03
euh...

j'ai (encore une fois) fais que lire la doc :

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.id.aspx

donc, je dirai :

nID = System.Diagnostics.Process.GetProcessesByName( "acrobat" ).ID

a supposer que ton appel à GetProcessesByName t'ai renvoyé quelque chose.
0
Ethan0026
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

26 juin 2008 à 18:45
euh...

j'ai fais que lire la doc :

ID n'est pas une instance de System.Diagnostics.Process.GetProcessesByName

donc ça marche pas ....
0
gillardg
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
3
26 juin 2008 à 19:19
Imports




System.Diagnostics



Public








Class

Form1



' Collection to hold processes for faster retrieval








Private

mcolProcesses


As





New

Collection()








' String constants for display in listviews








Private





Const

PID_NA


As





String

=


"N/A"








Private





Const

PROCESS_NAME_TOTAL


As





String

=


"_Total (0x0)"








Private





Const

PROCESS_IDLE


As





String

=


"Idle"








Private





Const

PROCESS_SYSTEM


As





String

=


"System"








' Used by AddNameValuePair to reduce typing








Private

mits


As

ListView.ListViewItemCollection 



Private





Sub

EnumProcesses()



' Enumerate all processes








Try








Dim

Processes()


As

Process



' Timespans for individual process information








Dim

tpt


As

TimeSpan



Dim

tppt


As

TimeSpan



Dim

tupt


As

TimeSpan



' Timespans for machine








Dim

mtpt


As

TimeSpan



Dim

mtppt


As

TimeSpan



Dim

mtupt


As

TimeSpan



' Dim i As Integer








Dim

p


As

Process



If





Not

mcolProcesses


Is





Nothing





Then


mcolProcesses =





New

Collection()



End





If








If





Me

.lvProcesses.Items.Count > 0


Then








Me

.lvProcesses.Items.Clear()



' Me.lvProcessDetail.Items.Clear()








' Me.lvThreads.Items.Clear()








End





If


Processes = Process.GetProcesses()








For





Each

p


In

ProcessesmcolProcesses.Add(p, p.Id.ToString())



' Get processor time and store


tppt = p.PrivilegedProcessorTime


tupt = p.UserProcessorTime


tpt = p.TotalProcessorTime








' Add the current process’ times to total times.


mtpt = mtpt.Add(tpt)


mtppt = mtppt.Add(tppt)


mtupt = mtupt.Add(tupt)








' % User Processor Time








Dim

strPUPT


As





String

=


CDbl

(tupt.Ticks / tpt.Ticks).ToString(


"#0%"

)



' % Privileged Processor Time








Dim

strPPPT


As





String

=


CDbl

(tppt.Ticks / tpt.Ticks).ToString(


"#0%"

)



Dim

strTPT


As





String








With

tptstrTPT = (.Days.ToString(



"00"

) &


"."

& .Hours.ToString(


"00"

) &


":"

& .Minutes.ToString(


"00"

) &


":"

& .Seconds.ToString(


"00"

))



End





With








With





Me

.lvProcesses.Items.Add(p.ProcessName &


" (0x"

& Hex(p.Id).ToLower() &


")"

).SubItems.Add(p.Id.ToString())

.SubItems.Add(strTPT)

.SubItems.Add(strPPPT)

.SubItems.Add(strPUPT)



End





With








Next








' % Total User Processor Time








Dim

mstrPUPT


As





String

=


CDbl

(mtupt.Ticks / mtpt.Ticks).ToString(


"#0%"

)



' % Total Privileged Processor Time








Dim

mstrPPPT


As





String

=


CDbl

(mtppt.Ticks / mtpt.Ticks).ToString(


"#0%"

)



Dim

mstrTPT


As





String








With

mtptmstrTPT = (.Days.ToString(



"00"

) &


"."

& .Hours.ToString(


"00"

) &


":"

& .Minutes.ToString(


"00"

) &


":"

& .Seconds.ToString(


"00"

))



End





With








' Add entry for all processes








With





Me

.lvProcesses.Items.Add(PROCESS_NAME_TOTAL).SubItems.Add(PID_NA)

.SubItems.Add(mstrTPT)

.SubItems.Add(mstrPPPT)

.SubItems.Add(mstrPUPT)



End





With








Catch

exp


As

ExceptionMessageBox.Show(exp.Message, exp.Source, MessageBoxButtons.OK, MessageBoxIcon.Error)



End





Try








End





Sub








Private





Sub

Form1_Load(


ByVal

sender


As

System.Object,


ByVal

e


As

System.EventArgs)


Handles





MyBase

.Load



'une listview = lvProcesses








'avec 5 colonnes = chProcessName, chPID, chProcessorTime,chPriv,chUser








'propriété View = details


EnumProcesses()








End





SubEnd







Class
0
Ethan0026
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

27 juin 2008 à 10:22
ça marche merci !
0