SetPriorityClass (kernel32)
Last changed: Javamyster-167.136.142.30

.
Summary

VB Signature:

<Runtime.InteropServices.DllImport("kernel32.dll", CharSet:=Runtime.InteropServices.CharSet.Auto, CallingConvention:=Runtime.InteropServices.CallingConvention.StdCall)> _

  Public Shared Function SetPriorityClass( _
    ByVal hProcess As IntPtr, _
    ByVal dwPriorityClass As IntPtr _
    ) As Boolean
  End Function

C# Signature:

[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]

public static extern bool SetPriorityClass(IntPtr handle, uint priorityClass);

User-Defined Types:

Public Enum PriorityClass

    ABOVE_NORMAL_PRIORITY_CLASS = &H8000
    BELOW_NORMAL_PRIORITY_CLASS = &H4000
    HIGH_PRIORITY_CLASS = &H80
    IDLE_PRIORITY_CLASS = &H40
    NORMAL_PRIORITY_CLASS = &H20
    PROCESS_MODE_BACKGROUND_BEGIN = &H100000 'Windows Vista/2008 and higher
    PROCESS_MODE_BACKGROUND_END = &H200000   'Windows Vista/2008 and higher
    REALTIME_PRIORITY_CLASS = &H100

End Enum

Notes:

VB no warnings with option strict = on.

Tips & Tricks:

Please add some!

Sample Code:

SetPriorityClass(mhHwnd, CType(20, System.IntPtr)) '20 = high !!

SetPriorityClass(Process.GetCurrentProcess.Handle, PriorityClass.PROCESS_MODE_BACKGROUND_BEGIN)

Alternative Managed API:

System.Diagnostics.Process.PriorityClass (Does not provide PROCESS_MODE_BACKGROUND options)

Documentation