Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction GetCurrentProcess

Declare Function GetCurrentProcess Lib "kernel32" () As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
(Origine : Phil - Mail : pplancon@chello.fr)

La fonction permet de récupèrer le handle du processus courant (enfin pas tout à fait on dit le pesudo-handle, mais il est interprété comme tel....).


Exemple d'utilisation :

'---------------------------------
'--- Origine : Phil ---
'--- Mail : pplancon@chello.fr ---
'---------------------------------
Option Explicit

' Le code ci-dessous montre comment changer la priorité du processus
' en cours (= au code qui suit). Les APIs utilisées permettent
' de classer par ordre prioritaire des processus, autrement dit
' le système réparti ou donne totalement les ressources systèmes
' (mémoire, CPU, ...) pour l'exécution de ou d'un processus.

'---Déclaration des constantes---
' Constantes des priorités (6 niveaux de priorités)
Const IDLE_PRIORITY_CLASS As Long = &H40 ' minimum
Const BELOW_NORMAL_PRIORITY_CLASS As Long = &H4000 ' normal -
Const NORMAL_PRIORITY_CLASS As Long = &H20 ' normal
Const ABOVE_NORMAL_PRIORITY_CLASS As Long = &H8000 ' normal +
Const HIGH_PRIORITY_CLASS As Long = &H80 ' haute
Const REALTIME_PRIORITY_CLASS As Long = &H100 ' maximum

' Constantes de gestion des process

'Accès au process en synchro uniquement.
Const SYNCHRONIZE As Long = &H100000
'Accès au process en "query_info".
Const PROCESS_QUERY_INFORMATION As Long = &H400

'Infinite timeout.
Const INFINITE As Long = &HFFFF

'---Déclarations des APIs---
' Gestion de la priorité du procces
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long
Private Declare Function
SetPriorityClass Lib "kernel32" (ByVal hProcess As Long, _
               
ByVal dwPriorityClass As Long) As Long
Private Declare Function
GetLastError Lib "kernel32" () As Long

' Pour le temps
Private Declare Function timeGetTime Lib "winmm.dll" () As Long

Private Sub
Command1_Click()
'---Déclaration des variables---
Dim i As Long
Dim
j As Long
Dim
HeureDebut As Long
'---Exécute un calcul bidon---
HeureDebut = timeGetTime
For i = 0 To 50000000 ' <- modifier ce chiffre pour influer sur le temps de calcul
   
j = (i * 2) Mod 34541
Next i
MsgBox "Temps du calcul bidon : " & timeGetTime - HeureDebut & " ms"
End Sub

Private Sub
Form_Load()
'---Déclaration des variables---
Dim LastError As Long
Dim
Ret As Long
Dim
hCurrentProcess As Long
'---Positionne la feuille---
Me.Move 0, 0
'---Modifie la priorité du process---
' Récupère le handle du process
hCurrentProcess = GetCurrentProcess()
' Affecte sa priorité
Ret = SetPriorityClass(hCurrentProcess, IDLE_PRIORITY_CLASS)
' Gestion des erreurs
If (Ret = 0) Then
   
LastError = GetLastError()
    MsgBox "Impossible de modifier la priorité." & _
           vbCrLf & vbCrLf &
CStr(LastError)
End If
End Sub

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr