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 LA PRIORITE DE L'APPLI


Information sur la source

Catégorie :Système Classé sous : priorité, changer, application, setpriorityclass Niveau : Expert Date de création : 15/05/1999 Vu / téléchargé: 7 763 / 505

Note :
8 / 10 - par 10 personnes
8,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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


Description

Comment changer la priorité de votre application ?

Mettez les Declaration Suivantes :
 

Source

  • Option Explicit
  • Public Const NORMAL_PRIORITY_CLASS = &H20
  • Public Const IDLE_PRIORITY_CLASS = &H40
  • Public Const HIGH_PRIORITY_CLASS = &H80
  • Public Const REALTIME_PRIORITY_CLASS = &H100
  • Public Const PROCESS_DUP_HANDLE = &H40
  • Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
  • Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
  • Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
  • Public Declare Function SetPriorityClass& Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long)
  • ' Puis mettez ce code dans votre Module :
  • Public Sub ChangePriority(dwPriorityClass As Long)
  • Dim hProcess&
  • Dim ret&, pid&
  • pid = GetCurrentProcessId() ' Récupérer Mon No de Process
  • ' Récupérer un Handle pour le Process
  • hProcess = OpenProcess(PROCESS_DUP_HANDLE, True, pid)
  • If hProcess = 0 Then
  • Err.Raise 2, "ChangePriority", "Impossible d'ouvrir le process"
  • Exit Sub
  • End If
  • ' Change le priorité
  • ret = SetPriorityClass(hProcess, dwPriorityClass)
  • ' Fermeture du Handle du Process
  • Call CloseHandle(hProcess)
  • If ret = 0 Then
  • Err.Raise 4, "ChangePriority", "Impossible de Fermer le process"
  • Exit Sub
  • End If
  • End Sub
  • Private Sub Form_Load()
  • Timer1.Interval = 2000
  • Call Timer1_Timer
  • End Sub
  • Private Sub Timer1_Timer()
  • Static Priority&
  • If Priority = IDLE_PRIORITY_CLASS Then
  • Priority = HIGH_PRIORITY_CLASS
  • Label1.Caption = "Priorité HAUTE !"
  • Else
  • Label1.Caption = "Priorité RALENTI"
  • Priority = IDLE_PRIORITY_CLASS
  • End If
  • Call ChangePriority(Priority)
  • End Sub
Option Explicit
Public Const NORMAL_PRIORITY_CLASS = &H20
Public Const IDLE_PRIORITY_CLASS = &H40
Public Const HIGH_PRIORITY_CLASS = &H80
Public Const REALTIME_PRIORITY_CLASS = &H100
Public Const PROCESS_DUP_HANDLE = &H40

Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Public Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Declare Function SetPriorityClass& Lib "kernel32" (ByVal hProcess As Long, ByVal dwPriorityClass As Long)

' Puis mettez ce code dans votre Module :

Public Sub ChangePriority(dwPriorityClass As Long)

    Dim hProcess&
    Dim ret&, pid&
    pid = GetCurrentProcessId() ' Récupérer Mon No de Process
    ' Récupérer un Handle pour le Process
    hProcess = OpenProcess(PROCESS_DUP_HANDLE, True, pid)

    If hProcess = 0 Then
        Err.Raise 2, "ChangePriority", "Impossible d'ouvrir le process"
        Exit Sub
    End If

    ' Change le priorité
    ret = SetPriorityClass(hProcess, dwPriorityClass)
    ' Fermeture du Handle du Process
    Call CloseHandle(hProcess)

    If ret = 0 Then
        Err.Raise 4, "ChangePriority", "Impossible de Fermer le process"
        Exit Sub
    End If
End Sub

Private Sub Form_Load()
    Timer1.Interval = 2000
    Call Timer1_Timer
End Sub

Private Sub Timer1_Timer()
    Static Priority&

    If Priority = IDLE_PRIORITY_CLASS Then
        Priority = HIGH_PRIORITY_CLASS
        Label1.Caption = "Priorité HAUTE !"
    Else
        Label1.Caption = "Priorité RALENTI"
        Priority = IDLE_PRIORITY_CLASS
    End If

    Call ChangePriority(Priority)
End Sub

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 madVinz le 07/07/2002 02:16:48

la meme chose existe pour les threads ...
A noter que REALTIME_PRIORITY_CLASS peut provoquer des plantages, comme le curseur de la souris qui ne bouge plus

signaler à un administrateur
Commentaire de gg00xiv le 15/08/2002 02:58:19

c koi le "&" que tu met un peu partout ?

signaler à un administrateur
Commentaire de gg00xiv le 15/08/2002 03:00:44

et au fait : ret c'est le retour de la fonction SetPriorityClass, donc si ret =0 c'est que la nouvelle priorite n'a pas pu etre appliquee, et non que le process n'a pas pu etre fermé

signaler à un administrateur
Commentaire de SuperClic le 20/08/2002 17:54:31

Suis débutantCé koi la priorié d'un appli ???

signaler à un administrateur
Commentaire de Jujufouq le 28/10/2002 14:32:33

---> gg00xiv
Je ne sais plus à quoi correspond ce "&", mais je sais que c'est un truc comme les "$" pour les strings, les "%" pour les integers.... etc. Donc, ne change pas où t'auras peut-être des erreurs.

signaler à un administrateur
Commentaire de Tidus le 01/12/2002 19:40:36

La priorité d'une application, c'est la façon dont le système va distribuer le temps processeur disponible en fonction de la demande. Plus la priorité est haute, plus le programme s'exécutera vite, par contre, si le programme utilise beaucoup de puissance, il risque de bloquer le reste du système pendant tout le temps de ses calculs.

Par exermple, tu compresses un fichier. Ca prend un temps fou et ça te gonfle. Tu passes alors ton logiciel de compression en temps réel, ton système se bloque, mais la compression s'accélère grandement, car le processeur est réservé à cette application. Quand elle a terminé, elle ne calcule plus, la souris se remet à bouger, et tu est content, car tu as gagné plein de temps !!!

signaler à un administrateur
Commentaire de Tidus le 01/12/2002 19:41:30

Sauf erreur de ma part, le &, c'est pour les Long ...

signaler à un administrateur
Commentaire de Cask le 03/12/2003 18:34:49

Ca ne marche pas ton code et je viens de trouver pourquoi.
Dans ta déclaration, C'EST PAS GetCurrentProcessId MAIS GetCurrentProcess TOUT COURT.

Voila, j'espère que tu en tiendras compte.

Ciao

signaler à un administrateur
Commentaire de EvilGost le 17/02/2005 12:42:30

marche pas pour moi:
hProcess = OpenProcess(PROCESS_DUP_HANDLE, True, pid) donne hprocess à 0....

signaler à un administrateur
Commentaire de grandvizir le 21/05/2005 10:25:19

Par analogie, j'ai bien plus simple (avec "+efficace" sous-entendu)
http://www.delphifr.com/code.aspx?id=11810

Ca tient en 1 ligne...

signaler à un administrateur
Commentaire de bogros le 29/10/2005 15:19:15

Bonjour !

Ce code ne marche pas pour moi non plus !!!! Il me sort pid=-1 et hProcess=0 dans tous les cas (j'ai remplacé getcurrentprocessid par getcurrentprocess).
Si j'utilise err.LastDLLError il me sort 87 (paramètres incorrects). Où est l'erreur ? Dans pid=-1 ou est-ce un problème de droit (erreur dans le paramètre Process_dup_handle) ???
Merci pour votre aide !
EvilGost, as-tu réussi à faire marcher ce code ?
Je suis sous XP.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Changer l'icone d'une application. [ par yann ] Bonjour a tousEst-ce que quelqu'un saurait comment changer l'icone d'une appli sous VB5.Merci pour vos réponses.Yann Changer l'icone d'un formulaire. [ par Lilia ] Salut à tous.G une application en VBA ACCESS et je lui ai mis une icone. Mon pb, c'est que lorsque plusieurs formulaires sont ouverts, l'icone de l'ap Changer le curseur dans l'application [ par guehu ] J'aurais aimé savoir comment changer le curseur de la souris juste quand on se trouve dans le programme vb. comment changer le nom application.productName ?? [ par guyvdv ] Bonjour,J'ai changer le nom de la solution et du project.Mais ce nouveau nom n ' apparer pas dans l'application.productname.Quesque et ou dois je chan Comment changer la forme du curseur de la souris en dehors de la fenêtre d'application ? [ par lnaintre ] Bonjour à tous,Voilà, j'ai crée une petite appli qui donne les coordnnées x et y du curseur sur l'écran. Et j'aimerai changer la forme du curseur de l Application style XP [ par Masq ] J'ai trouvé des sources sur le site pour changer le look d'une application mais j'ai plusieurs problèmes : - cela ne gère pas les MDIForm - Changer priorité d'un processus (pas celui en cours) [ par Stephane ] Salut a tous voila on trouve partout sur internet, comment changer la priorité de l'appli en cours d'exécution, mais moi j'aurais besoin de Changer priorité processus (pas le current) [ par Stephane ] Salut a tous Voila, on trouve partout sur internet, des sources pour modifier la priorité de l'appli en cours d'execution, mais moi j'aurais bes [Vb Net] Changer la résolution de l'écran lors du lancement de l'application de 800*600 -> 1024*768 [ par boumbo73 ] Bonjour, Voila j'ai fait une application optimisé pour l'affichage en 1024*768. Comment je peux faire pour changer la résoltuion de l'&#233 priorité application [ par nanou1605 ] Bonjour, j'aimerais pouvoir lancer une application (.exe) en modifiant sa priorité. J'ai trouvé la source de Nix 'http://www.vbfrance.com/code.aspx?


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

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 : 3,089 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é.