Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как получить / установить приоритет процесса?

Delphi , Программа и Интерфейс , Процессы и Сервисы

Code:

Const
   ppIdle                  : Integer = -1;
   ppNormal                : Integer =  0;
   ppHigh                  : Integer =  1;
   ppRealTime              : Integer =  2;
 
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;

для установки приоритета Вашего приложения, либо:

   Function GetProcessPriority : Integer;

для получения приоритета.

Взято из http://forum.sources.ru

Пример

Следующий пример изменяет приоритет приложения. Изменение приоритета следует использовать с осторожностью - т.к. присвоение слишком высокого приоритета может привети к медленной работе остальных программ и системы в целом. См. Win32 help for SetThreadPriority() function.

Code:

procedure TForm1.Button1Click(Sender: TObject);
var
   ProcessID : DWORD;
   ProcessHandle : THandle;
   ThreadHandle : THandle;
begin
   ProcessID := GetCurrentProcessID;
   ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION,
                                false,
                                ProcessID);
   SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
   ThreadHandle := GetCurrentThread;
   SetThreadPriority(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);
end;

Статья Как получить / установить приоритет процесса? раздела Программа и Интерфейс Процессы и Сервисы может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Процессы и Сервисы ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
28.03.2024 18:49:50/0.032843828201294/0