VBcoders Browse New Submit Contact Sign In

No account? Register free

Forgot password?

Changing priority

Steve Pepper  (1 Submission)   Windows API Call/Explanation   Visual Basic 3.0   Unknown Difficulty   Wed 3rd February 2021

This code fragment demonstrates how you can get a program to change it's own priority.
Sometimes it is necessary to change the priority of a process from the default.
The example that prompted this code was a program I had to launch from a commercial scheduler always defaulted to idle priority. This caused the program to miss it's processing deadline. Increasing the priority to normal or high solved the problem.

Assumes
To run this code, add a form to a new project with a timer and a label. The priority will toggle between idle and high every two seconds. Under NT4, you can use the task manager to see the base priority of this process changing.

Side Effects
Changing the priority of your process to REALTIME_PRIORITY_CLASS is a bad idea in Visual Basic. I have only tested this code under NT4 sp4 and VB5 but I think it should work under Windows9x

API Declarations
Option Explicit
Private Const NORMAL_PRIORITY_CLASS = &H20
Private Const IDLE_PRIORITY_CLASS = &H40
Private Const HIGH_PRIORITY_CLASS = &H80
Private Const REALTIME_PRIORITY_CLASS = &H100
Private Const PROCESS_DUP_HANDLE = &H40
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, _
ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Private Declare Function SetPriorityClass& Lib "kernel32" (ByVal hProcess As Long, _
ByVal dwPriorityClass As Long)

Rate Changing priority (6(6 Vote))
Changing priority.bas

Changing priority Comments

No comments yet — be the first to post one!

Post a Comment

0/1000 characters