Process ID [Résolu]

Signaler
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008
-
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008
-
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

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
"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())
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

ok je vais voir merci
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

bcp trop compliqué par rapport à ce que je veux faire !

Qui aurait la solution ?
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
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.
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

euh...

j'ai fais que lire la doc :

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

donc ça marche pas ....
Messages postés
3275
Date d'inscription
jeudi 3 avril 2008
Statut
Membre
Dernière intervention
14 septembre 2014
4
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
Messages postés
14
Date d'inscription
vendredi 21 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2008

ça marche merci !