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 |