Click to See Complete Forum and Search --> : #> Putting an App in...
cyberwarpy
May 6th, 2001, 11:06 PM
Anyone know how to put your app into a high-priority mode...? I know there are process priorities:
1. Very High
2. High
...
amitabh
May 9th, 2001, 02:17 AM
Use SetThreadPriority api call
Const THREAD_BASE_PRIORITY_IDLE = -15
Const THREAD_BASE_PRIORITY_LOWRT = 15
Const THREAD_BASE_PRIORITY_MIN = -2
Const THREAD_BASE_PRIORITY_MAX = 2
Const THREAD_PRIORITY_LOWEST = THREAD_BASE_PRIORITY_MIN
Const THREAD_PRIORITY_HIGHEST = THREAD_BASE_PRIORITY_MAX
Const THREAD_PRIORITY_BELOW_NORMAL = (THREAD_PRIORITY_LOWEST + 1)
Const THREAD_PRIORITY_ABOVE_NORMAL = (THREAD_PRIORITY_HIGHEST - 1)
Const THREAD_PRIORITY_IDLE = THREAD_BASE_PRIORITY_IDLE
Const THREAD_PRIORITY_NORMAL = 0
Const THREAD_PRIORITY_TIME_CRITICAL = THREAD_BASE_PRIORITY_LOWRT
Const HIGH_PRIORITY_CLASS = &H80
Const IDLE_PRIORITY_CLASS = &H40
Const NORMAL_PRIORITY_CLASS = &H20
Const REALTIME_PRIORITY_CLASS = &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
Private Sub Form_Load()
'KPD-Team 2000
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim hThread As Long, hProcess As Long
'retrieve the current thread and process
hThread = GetCurrentThread
hProcess = GetCurrentProcess
'set the new thread priority to "lowest"
SetThreadPriority hThread, THREAD_PRIORITY_LOWEST
'set the new priority class to "idle"
SetPriorityClass hProcess, IDLE_PRIORITY_CLASS
'print some results
Me.AutoRedraw = True
Me.Print "Current Thread Priority:" + Str$(GetThreadPriority(hThread))
Me.Print "Current Priority Class:" + Str$(GetPriorityClass(hProcess))
End Sub
cyberwarpy
May 9th, 2001, 07:00 AM
So... by using this code.. it will put the whole app and everything that goes along with it... into high CPU priority...?
cyberwarpy
May 9th, 2001, 07:04 AM
Would there also be implications on secure O/S's such as WinNT/2000...? anyone know...?
amitabh
May 9th, 2001, 11:09 PM
On NT/2000, you need to have requisite permissions. Other than these, I don't think it has any other implications
cyberwarpy
May 9th, 2001, 11:29 PM
then... how would we find out, whether or not it was successfully put on priority...?!? On a system with restrictions or limitations on priorities... :confused:
This wouldn't affect the system, if I put the app in REALTIME mode..? :eek:
Originally posted by amitabh
On NT/2000, you need to have requisite permissions. Other than these, I don't think it has any other implications
amitabh
May 10th, 2001, 08:35 PM
Trap the return value of the SetThreadPriority api call. It will return success or failure. To know the error, use the GetLastError api call immediately after the api call.
vbforums.com
Copyright Internet.com Inc., All Rights Reserved.