Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

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

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


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;

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

Код, предоставленный ниже, это модуль Delphi, который позволяет установить и получить приоритет процесса в Windows 9x или Me.

См. как это работает:

  • Функция SetProcessPriority принимает целочисленное значение, представляющее желаемый приоритет: ppIdle, ppNormal, ppHigh или ppRealTime. Она устанавливает класс приоритета текущего процесса с помощью функции API SetPriorityClass. Затем она возвращает текущий класс приоритета как целочисленное значение.

  • Функция GetProcessPriority получает текущий класс приоритета текущего процесса с помощью функции API GetPriorityClass и возвращает его как целочисленное значение.

Константы ppIdle, ppNormal, ppHigh и ppRealTime определены в начале модуля. Эти значения соответствуют различным классам приоритета в Windows 9x или Me:

  • -1: Idle (низший приоритет)
  • 0: Normal
  • 1: High
  • 2: Realtime (высший приоритет)

Чтобы использовать этот код, вы можете вызвать функцию SetProcessPriority с желаемым приоритетом для установки приоритета вашей приложения или функцию GetProcessPriority для получения текущего приоритета.

Пример:

program Test;
uses
  PriorityUnit;

begin
  SetProcessPriority(ppHigh);
  Sleep(1000); // выполните какое-то задание
end.

В этом примере программа устанавливает свой приоритет в высокий и затем ожидает 1 секунду с помощью функции Sleep. В это время процесс будет выполняться с более высоким приоритетом.

Обратите внимание, что операционные системы Windows NT/2000/XP/2003/Vista/7/8/10 имеют болееadvanced механизмы планирования приоритетов, чем Windows 9x или Me, и эти функции могут не работать так, как ожидали на новых версиях Windows.

Статья рассказывает о способах получения и установки приоритета процесса в операционной системе Windows 9x или Me.


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

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


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


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 16:37:11/0.0031700134277344/0