Process ID [Résolu]

Ethan0026 14 Messages postés vendredi 21 septembre 2007Date d'inscription 2 juillet 2008 Dernière intervention - 26 juin 2008 à 12:15 - Dernière réponse : Ethan0026 14 Messages postés vendredi 21 septembre 2007Date d'inscription 2 juillet 2008 Dernière intervention
- 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
Afficher la suite 

8 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 27 juin 2008 à 07:17
+3
Utile
"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())
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 26 juin 2008 à 13:36
Commenter la réponse de gillardg
Ethan0026 14 Messages postés vendredi 21 septembre 2007Date d'inscription 2 juillet 2008 Dernière intervention - 26 juin 2008 à 14:46
0
Utile
ok je vais voir merci
Commenter la réponse de Ethan0026
Ethan0026 14 Messages postés vendredi 21 septembre 2007Date d'inscription 2 juillet 2008 Dernière intervention - 26 juin 2008 à 15:46
0
Utile
bcp trop compliqué par rapport à ce que je veux faire !

Qui aurait la solution ?
Commenter la réponse de Ethan0026
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 26 juin 2008 à 16:03
0
Utile
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.
Commenter la réponse de Renfield
Ethan0026 14 Messages postés vendredi 21 septembre 2007Date d'inscription 2 juillet 2008 Dernière intervention - 26 juin 2008 à 18:45
0
Utile
euh...

j'ai fais que lire la doc :

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

donc ça marche pas ....
Commenter la réponse de Ethan0026
gillardg 3288 Messages postés jeudi 3 avril 2008Date d'inscription 14 septembre 2014 Dernière intervention - 26 juin 2008 à 19:19
0
Utile
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
Commenter la réponse de gillardg
Ethan0026 14 Messages postés vendredi 21 septembre 2007Date d'inscription 2 juillet 2008 Dernière intervention - 27 juin 2008 à 10:22
0
Utile
ça marche merci !
Commenter la réponse de Ethan0026

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.