Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CHANGER PRIORITE PROCESSUS


Information sur la source

Catégorie :Système Classé sous : processus, priorite Niveau : Initié Date de création : 26/01/2007 Vu / téléchargé: 4 736 / 205

Note :
5,5 / 10 - par 4 personnes
5,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

CHANGE LA PRIORITE D'UN PROCESSUS ACTIF
ici, le programme change la priorite du processus 'explorer.exe'

 

Source

  • Option Explicit
  • Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  • Private Declare Function SetPriorityClass Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
  • Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  • Sub Main()
  • Dim hProcess As Long
  • Dim svc As Object
  • Dim sQuery As String
  • Dim oproc
  • Dim valeur_priorite As Long
  • Set svc = GetObject("winmgmts:root\cimv2")
  • 'le nom du processus dont il faut changer la priorite:
  • sQuery = "select * from win32_process where name= 'explorer.exe'"
  • For Each oproc In svc.execquery(sQuery)
  • hProcess = OpenProcess(&H200, 0, oproc.ProcessId)
  • 'valeurs PRIORITES:
  • ' &h4000=normale
  • ' &h8000=normale+
  • ' &h20=normale-
  • ' &h80=haute
  • valeur_priorite = &H8000
  • SetPriorityClass hProcess, valeur_priorite
  • Next
  • End Sub
Option Explicit
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

Private Declare Function SetPriorityClass Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long

Sub Main()
Dim hProcess As Long
    Dim svc As Object
    Dim sQuery As String
    Dim oproc
    Dim valeur_priorite As Long
    
    Set svc = GetObject("winmgmts:root\cimv2")
    'le nom du processus dont il faut changer la priorite:
    sQuery = "select * from win32_process where name= 'explorer.exe'"
    For Each oproc In svc.execquery(sQuery)
    hProcess = OpenProcess(&H200, 0, oproc.ProcessId)
    'valeurs PRIORITES:
    ' &h4000=normale
    ' &h8000=normale+
    ' &h20=normale-
    ' &h80=haute
    valeur_priorite = &H8000
    SetPriorityClass hProcess, valeur_priorite
    Next
    
End Sub

Conclusion

Le programme utilise un script WMI en utilisant la classe Win32_process

 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de zavier666 le 26/01/2007 19:41:21

Cette source est parfaite...
.... à condition de connaître les process en cours, et pour cela, il faut les énumérer comme ceci par exemple: http://www.vbfrance.com/codes/DA-ENUMPROCESSES-CODE_37227.aspx

Slts!
___________________________________________________
Toujours + de VB et d'APi => API @ la Loupe
http://xav.prog.power.free.fr

signaler à un administrateur
Commentaire de XelectroX le 26/01/2007 22:19:08

Existe déjà !
J'ai fait un truc du genre. Va voir pour des améliorations !
"http://www.vbfrance.com/codes/PROCESSPRIORITY_40455.aspx"
Bonne prog !@+

signaler à un administrateur
Commentaire de azertop le 27/01/2007 18:16:11

Le sujet est MODIFIER UN PROCESSUS ACTIF, inutile
d'alourdir le code. Pour la liste des processus actifs
il y a CTRL-ALT-SUPPR.

Désolé, xelectrox mais ton prog est classé LOUCHE par
les admin.

a+

signaler à un administrateur
Commentaire de MadM@tt le 28/01/2007 00:28:11

Louche ne veut pas dire pas bon, sinon il aurait été supprimé.
Le code de XelectroX a été classé "louche" car le fait de modifier la priorité des processus peut rendre le système instable. Tout comme ton code, c'est pourquoi le tiens aussi peut etre classé au meme rang que le sien.
Bref ce bout de code n'est pas nouveau, mais je ne critique pas !
Par contre tu pourrais mettre des constantes pour les différents niveau de priorité, et il en manque 2 : "basse" et "temps réel".
Tu pourrais aussi eclaircir le code en faisant une fonction "SetProcessPriority", comme ça c'est beaucoup plus simple à réutiliser.

signaler à un administrateur
Commentaire de azertop le 28/01/2007 12:16:01

Le code de Xelectrox n'est pas le meme que le mien
puisque le sien modifie la priorité du processus de son propre programme seulement alors que le mien modifie la priorite de n'importe quel processus actif. Ce n'est pas la
meme chose.
D'autre part, mon code est loin d'etre complet mais je
l'ai mis juste a titre pédagogique, tout le monde ensuite
peut rajouter ce qu'il veut.

slt

signaler à un administrateur
Commentaire de violent_ken le 28/01/2007 14:13:58

Et la fermeture du handle ouvert avec OpenProcess, elle passe où ??

signaler à un administrateur
Commentaire de MadM@tt le 28/01/2007 14:14:37

pfff...
Y'a peut etre une nuance, ok, mais c'est la meme chose !
tu veux un autre exemple :
http://www.vbfrance.com/codes/LIBRAIRIE-NOMBREUSES-FONCTIONS-POUR-AGIR-SUR-FENETRES-PROCESSUS_38829.aspx

Ton code est loin d'etre complet, mais comme il n'est pas nouveau, donne lui au moins un plein intéret.
Bon ce que je veux dire c'est que ta source à de l'interet dans le sens où elle est courte et donne directement ce qui est dans le titre, par contre elle n'est pas optimisée.
C'est pourquoi je te conseille de completer la liste des priorité manquantes, de passer ça sous forme de fonction, de mettre un type pour toutes tes variables et d'éviter d'utiliser les GetObjects et tout le tralala car c'est lent. Utilise plutot les api pour trouver un processus, aide toi de la source que je t'ai passé si tu veux.

signaler à un administrateur
Commentaire de MadM@tt le 28/01/2007 14:15:10

Ah effectivement ;)

signaler à un administrateur
Commentaire de MadM@tt le 28/01/2007 14:16:13

Tiens bah regarde, voilà un peu de pub, mais un exemple d'un code court et facilement réutilisable :
http://vbsystemlibrary.free.fr/code.php?ID=6

(dsl pour le troll)

signaler à un administrateur
Commentaire de Alain95350 le 19/01/2008 19:14:26

merci bcp pour ce script, j en avais besoin depuis qq temps; :)
http://fr.netlog.com/Aladin87/

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Limiter le nombre de processus [ par Adrien ] à partir d'une liste d'adresses IP, je lance des batchs sur chacune des adresses mais le lancement en shell("batch.bat") m'ouvre les process "cmd" en Dialogue entre processus [ par Hawk ] 'lut! J'aimerais savoir comment envoyer un message entre deux processus ( j'ai un processus maître qui crée x fils, les fils doivent retourner des inf Processus : Urgent !! [ par Lead ] Salut a tous, je recherche le moyen d'obtenir les noms internes des processus en court (La liste du Ctrl Alt Suprr), pas la liste des noms des executa Les fonctions sur les processus ! [ par seyev ] Salut à tous !Je crée un nouveau processus avec CreateProcess() et je récupère les différentes info par le dernier paramètre (dont l'id et le handle)M Processus, c'est possible de les "pauser" ???????????? Aidez moi [ par Cyberdevil ] Hello,Je fais comment pour faire une pause dans le système,c'est à dire que tout le programme en chargement ou en exécution soit "pauser" donc d'inter Recherche le nom d'une fonction [ par eltaris ] Je cherche une fonction (qui existe, je le sais) qui interrompt le processus en cours pendant un court instantpour que puissent s'exécuter d'autres pr Tjrs, Tjrs Histoire de processus [ par Cyberdevil ] Hello,J'ai une question a propos de vb, est ce que c'est possible de "pauser" tous les processus en cours puis de les relancer en faite ce que je veu [?]KILL Processus excel.exe ??? [ par Steph73 ] Bonjour,mon appli met à jours des tableaux sous excel. Mais si le fichier en question est déjà ouvert, ça plante! Je souhaite donc KILLER tout process comment tester si word est ouvert ? [ par xavier ] je voudrais tester si word est ouvertd'autre part est ce que qqun sait comment avoir accès aux processus en cours et si on peut terminer un processus comment engager plusieurs processus simultanés ? [ par Ouneufe ] Salut,Suis bien incapable de trouver quelle est la procédure pour exécuter plusieurs tâches en parallèle et échapper à une éxécution linéaire ?Quelqu'


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,186 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.