Změna úrovně priority aktuálního procesu

Postup:
Option Explicit

Private Const THREAD_BASE_PRIORITY_IDLE As Long = -15
Private Const  THREAD_BASE_PRIORITY_LOWRT As Long = 15
Private Const THREAD_BASE_PRIORITY_MIN As Long = -2
Private Const  THREAD_BASE_PRIORITY_MAX As Long = 2
Private Const THREAD_PRIORITY_LOWEST As Long = THREAD_BASE_PRIORITY_MIN
Private Const  THREAD_PRIORITY_HIGHEST As Long = THREAD_BASE_PRIORITY_MAX
Private Const THREAD_PRIORITY_BELOW_NORMAL As Long = (THREAD_PRIORITY_LOWEST + 1)
Private Const THREAD_PRIORITY_ABOVE_NORMAL As Long = (THREAD_PRIORITY_HIGHEST - 1)
Private Const THREAD_PRIORITY_IDLE As Long = THREAD_BASE_PRIORITY_IDLE
Private Const  THREAD_PRIORITY_NORMAL As Long = 0
Private Const THREAD_PRIORITY_TIME_CRITICAL As Long = THREAD_BASE_PRIORITY_LOWRT
Private Const HIGH_PRIORITY_CLASS As Long = &H80
Private Const  IDLE_PRIORITY_CLASS As Long = &H40
Private Const NORMAL_PRIORITY_CLASS As Long = &H20
Private Const REALTIME_PRIORITY_CLASS As Long = &H100

Private Declare Function SetThreadPriority Lib "kernel32" _
   (ByVal hThread As Long, ByVal nPriority As Long) As Long
Private Declare Function SetPriorityClass Lib "kernel32" _
   (ByVal hProcess As Long, ByVal dwPriorityClass As Long) As Long
Private Declare Function GetThreadPriority Lib "kernel32" _
   (ByVal hThread As Long) As Long
Private Declare Function GetPriorityClass Lib "kernel32" _
   (ByVal hProcess As Long) As Long
Private Declare Function GetCurrentThread Lib "kernel32" () As Long
Private Declare Function GetCurrentProcess Lib "kernel32" () As Long

Ukázka použítí
Sub Test()

   SetPriority THREAD_PRIORITY_LOWEST, IDLE_PRIORITY_CLASS

End Sub

Sub SetPriority(ByVal lThreadPriority As Long, _
   ByVal lClassPriority As Long)

   Dim hThread As Long, hProcess As Long

   hThread = GetCurrentThread
   hProcess = GetCurrentProcess

   'test aktuální priority
   'Debug.Print "Priorita aktuálního procesu:" + Str$(GetThreadPriority(hThread))
   'Debug.Print "Třída priority:" + Str$(GetPriorityClass(hProcess))

   SetThreadPriority hThread, lThreadPriority
   SetPriorityClass hProcess, lClassPriority

   'test nastavené priority
   'Debug.Print "Priorita aktuálního procesu:" + Str$(GetThreadPriority(hThread))
   'Debug.Print "Třída priority:" + Str$(GetPriorityClass(hProcess))

End Sub

Zpět

Autor: The Bozena