Function SetProcessPriority( Priority : Integer ) : Integer;
Var
H : THandle;
Begin
Result := ppNormal;
H := GetCurrentProcess();
If ( Priority = ppIdle ) Then
SetPriorityClass( H, IDLE_PRIORITY_CLASS )
Else If ( Priority = ppNormal ) Then
SetPriorityClass( H, NORMAL_PRIORITY_CLASS )
Else If ( Priority = ppHigh ) Then
SetPriorityClass( H, HIGH_PRIORITY_CLASS )
Else If ( Priority = ppRealTime ) Then
SetPriorityClass( H, REALTIME_PRIORITY_CLASS );
Case GetPriorityClass( H ) Of
IDLE_PRIORITY_CLASS : Result := ppIdle;
NORMAL_PRIORITY_CLASS : Result := ppNormal;
HIGH_PRIORITY_CLASS : Result := ppHigh;
REALTIME_PRIORITY_CLASS : Result := ppRealTime;
End;
End;
Function GetProcessPriority : Integer;
Var
H : THandle;
Begin
Result := ppNormal;
H := GetCurrentProcess();
Case GetPriorityClass( H ) Of
IDLE_PRIORITY_CLASS : Result := ppIdle;
NORMAL_PRIORITY_CLASS : Result := ppNormal;
HIGH_PRIORITY_CLASS : Result := ppHigh;
REALTIME_PRIORITY_CLASS : Result := ppRealTime;
End;
End;
Как использовать:
Function SetProcessPriority( Priority : Integer ) : Integer;
Следующий пример изменяет приоритет приложения. Изменение приоритета следует использовать с осторожностью - т.к. присвоение слишком высокого приоритета может привети к медленной работе остальных программ и системы в целом. См. Win32 help for SetThreadPriority() function.
Статья Как получить / установить приоритет процесса? раздела Программа и Интерфейс Процессы и Сервисы может быть полезна для разработчиков на Delphi и FreePascal.
Комментарии и вопросы
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.