IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo

FAQ VBScriptConsultez toutes les FAQ

Nombre d'auteurs : 16, nombre de questions : 108, dernière mise à jour : 2 mars 2019  Ajouter une question

 


Cette FAQ VB Script est le fruit de la collaboration de l'équipe de rédaction et des membres du forum VB.

Aidez-nous à faire vivre cette FAQ en participant au forum Vos contributions VBScript.

Pour toutes questions ou tous problèmes concernant cette FAQ, vous pouvez contacter par MP ThierryAIM ou bbil.

L'équipe de rédaction de Developpez.com vous remercie pour votre participation passée et à venir.

SommaireWMI : Windows Management InstrumentationProcessus : classe Win32_Process (3)
précédent sommaire suivant
 

En utilisant la classe Win32_process ;

Code vb : Sélectionner tout
1
2
3
4
5
6
Set objWMI = GetObject("winmgmts:root\cimv2") 
sQuery = "Select * from Win32_process" 
For Each oproc In objWMI.execquery(sQuery) 
    Wscript.echo oproc.Name & " = " & oproc.ExecutablePath 
Next 
Set objWMI = Nothing

Mis à jour le 27 février 2014 ThierryAIM

Un script WMI utilisant la classe Win32_process pour obtenir la liste des processus actifs, puis la méthode Terminate pour fermer le processus sélectionné :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") 
  
Set colProcessList = objWMIService.ExecQuery _ 
    ("Select * from Win32_Process Where Name = 'Notepad.exe'") 
  
For Each objProcess in colProcessList 
    objProcess.Terminate() 
Next

Mis à jour le 28 février 2007 ced600 ThierryAIM

En utilisant la classe WIN32_Process (WMI), la méthode SetPriority et le handle du processus concerné :

Code vb : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
' Constantes pour SetPriority 
  Const NORMAL = 32 ' ou &H20 
  Const LOW = 64 ' ou &H40 
  Const HIGH = 128 ' ou &H80 
  Const REALTIME = 256 ' &H100 
  Const BELOW_NORMAL = 16384 ' &H4000 
  Const ABOVE_NORMAL = 32768 ' &H8000 
strComputer = "."  
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")  
' Recherche du handle du processus 
Set colProcesses = objWMIService.ExecQuery("SELECT * FROM Win32_Process") 
  For Each Process In colProcesses 
   If LCase(Process.Name) = "wordpad.exe" Then 
     intHandle = Process.Handle 
     Exit For 
     End If 
  Next 
' Attribution de la nouvelle priorité 
Set objShare = objWMIService.Get("Win32_Process.Handle='" & intHandle & "'") 
Set objInParam = objShare.Methods_("SetPriority").inParameters.SpawnInstance_() 
objInParam.Properties_.Item("Priority") =  ABOVE_NORMAL  ' Priorité supérieure à la normale. 
Set objOutParams = objWMIService.ExecMethod("Win32_Process.Handle='" & intHandle & "'", "SetPriority", objInParam) 
' Si tout se passe correctement (valeur de retour = 0), pas de message 
If objOutParams.ReturnValue <> 0 Then MsgBox "ReturnValue: " & objOutParams.ReturnValue

Une version plus simple de ce code est la suivante :
Code vb : Sélectionner tout
1
2
3
4
5
6
7
Const LOW = &H40 ' priorité basse 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 
Set colProcesses = objWMIService.ExecQuery("Select * from Win32_Process Where Name = 'Wordpad.exe'") 
For Each objProcess in colProcesses 
    objProcess.SetPriority(LOW)  
Next


Remarque : Pour visualiser le changement, lancer Wordpad puis dans le gestionnaire des tâches, clic droit sur Wordpad et survoler le menu Définir la priorité pour voir son état actuel. Lancer ensuite le code et revoir la priorité dans le gestionnaire des tâches.

Mis à jour le 12 mars 2014 l_autodidacte

Proposer une nouvelle réponse sur la FAQ

Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour ça


Réponse à la question

Liens sous la question
précédent sommaire suivant
 

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.