![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Установка приоритета процесса [D7, WinXP]
Vitaliy_____ © (2008-09-23 06:39:00)Добрый день.
Что-то не смог разобраться с темой.
У нас есть 2 ф-и: установки приоритета процессу и текущему потоку.
SetPriorityClass;
SetThreadPriority;
Мне нужно чтобы приоритет менялся аналогично тому, как если бы мы его выставили в диспетчере задач (желательно, чтобы и там это отобразилось). Какую из этих ф-й (их сочетание) использовать?
Судя, скажем по http://www.cyberguru.ru/programming/win32/windows-processes-page3.html
не все так просто как кажется...
Vitaliy_____ (2008-09-23 12:16:00) [1]Забыл, T-поток, H-процесс.
var H : THandle;
T: Cardinal;
begin
H := GetCurrentProcess();
T := GetCurrentThread();
...
Vitaliy_____ (2008-09-23 12:14:00) [2]Книгу скачал, с удовольствием углублю знания. Там еще и про реестр много интересного - спасибо за совет.
Правда я решил выставить приоритеты уже таким образом (по возрастанию) - в диспетчере отображается почти так как хотел, меня уже устраивает.
case Process_Priority_Selection.ItemIndex of
0:begin
SetThreadPriority(T,THREAD_PRIORITY_NORMAL);
SetPriorityClass(H,IDLE_PRIORITY_CLASS);
end;
1:begin
SetThreadPriority(T,THREAD_PRIORITY_LOWEST);
SetPriorityClass(H,NORMAL_PRIORITY_CLASS);
end;
2:begin
SetThreadPriority(T,THREAD_PRIORITY_NORMAL);
SetPriorityClass(H,NORMAL_PRIORITY_CLASS);
end;
3:begin
SetThreadPriority(T,THREAD_PRIORITY_ABOVE_NORMAL);
SetPriorityClass(H,NORMAL_PRIORITY_CLASS);
end;
4:begin
SetThreadPriority(T,THREAD_PRIORITY_NORMAL);
SetPriorityClass(H,HIGH_PRIORITY_CLASS);
end;
end;// case
Юрий Зотов (2008-09-23 11:10:00) [3]Скачайте книгу Джеффри Рихтера "Windows для профессионалов", там все это подробно описано. Здесь рассказывать слишком долго, в книге этому целый раздел посвящен.