Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Пиплы помогите!!! Можно ли установить приоритет программы


Хлор ©   (2002-01-26 04:54:00) 

У меня есть прога и я хочу установить приоритет для нее в системе, такое вообще возможно. Если да то как можно это сделать?


Dimaond Cat   (2002-01-27 01:09:00) [1]

var
PriorityClass, Priority: Integer;
begin
PriorityClass := GetPriorityClass(GetCurrentProcess);
Priority := GetThreadPriority(GetCurrentThread);

SetPriorityClass(GetCurrentProcess, REALTIME_PRIORITY_CLASS);
SetThreadPriority(GetCurrentThread, THREAD_PRIORITY_TIME_CRITICAL);
//делаем нечто
//и возвращаем старый приоритет
SetThreadPriority(GetCurrentThread, Priority);
SetPriorityClass(GetCurrentProcess, PriorityClass);


Raptor   (2002-01-26 12:15:00) [2]

Ты можешь установить только приоритет нити (Thread). Для того что бы установить, как ты выразился, приоритет проги надо установит приоритет основной нити процесса (проги). Для этого используй функцию SetThreadPriority.

//************************** MSDN ******************************
The SetThreadPriority function sets the priority value for the specified thread. This value, together with the priority class of the thread"s process, determines the thread"s base priority level.

BOOL SetThreadPriority(
HANDLE hThread, // handle to the thread
int nPriority // thread priority level
);

Parameters
hThread
Handle to the thread whose priority value is to be set.
Windows NT: The handle must have the THREAD_SET_INFORMATION access right associated with it.

nPriority
Specifies the priority value for the thread. This parameter can be one of the following values: Priority Meaning
THREAD_PRIORITY_ABOVE_NORMAL Indicates 1 point above normal priority for the priority class.
THREAD_PRIORITY_BELOW_NORMAL Indicates 1 point below normal priority for the priority class.
THREAD_PRIORITY_HIGHEST Indicates 2 points above normal priority for the priority class.
THREAD_PRIORITY_IDLE Indicates a base priority level of 1 for IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority level of 16 for REALTIME_PRIORITY_CLASS processes.
THREAD_PRIORITY_LOWEST Indicates 2 points below normal priority for the priority class.
THREAD_PRIORITY_NORMAL Indicates normal priority for the priority class.
THREAD_PRIORITY_TIME_CRITICAL Indicates a base priority level of 15 for IDLE_PRIORITY_CLASS, NORMAL_PRIORITY_CLASS, or HIGH_PRIORITY_CLASS processes, and a base priority level of 31 for REALTIME_PRIORITY_CLASS processes.

Return Values
If the function succeeds, the return value is nonzero.

If the function fails, the return value is zero. To get extended error information, call GetLastError.
//**********************************************************

Хендл Thread"а (hThread) получаешь, например, с помощью функции GetCurrentThread (hThread:=GetCurrentThread).


Наверх

Титульная страница Поиск, карта сайта Написать письмо