Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];




Вниз

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


Хлор   (2002-01-26 04:54) [0]

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



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

Ты можешь установить только приоритет нити (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).



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

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);




Форум: "WinAPI";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.032 c
6-80633           and_or                2002-01-09 20:26  2002.03.25  
ping & tracertМожнping & tracert


4-80719           dr0Ne64               2002-01-24 22:48  2002.03.25  
No Ctrl+Alt+Del


3-80425           kserg@ukr.net         2002-02-26 18:31  2002.03.25  
Как восстановить пользовательские установки DBGrid-а?


3-80407           fidget                2002-02-26 12:14  2002.03.25  
Объединение 2х баз.


3-80430           SkyR                  2002-02-26 06:48  2002.03.25  
Такой ламерский вопрос...