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.
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 |
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 |
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.
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 çaLes 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.