Господа, не подскажите сабж...
Есть тема , что при достаточно большом количестве терминальных сессий прога начинает подвисать...
Проблема решается если зайдя в Task Manager изменить процессам приоритет на более низкий.
Хотелось бы автоматизизовать данную процедуру
Нельзя ли перехватывать момент создания в системе определенного процеса и изменять ему приоритет...
???
Re: Изменение приоритета существующего процеса в NT [D5, NT4
В общем нельзяли пример кода или скажите где взять качественную доку... Прошу потому как раньше ничего такого не писал...
Пока с БД только в основном работал.
Уточнение задачи:
Нужно сканировать список NT процессов (например по таймеру, раз уж отслеживать появление нового геморно),
Затем искать все процессы с определенным именем и менять им приоритет на пониже
Например так
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_LOWEST)
Получить список всех процессов?
В цикле по ним ходить и искать "ХХХХ.ЕХЕ"
Как грамотно получать ThreadHandle?
Правильную ли процедуру нашел? — ну хотя это потом и сам проверю
Re: Изменение приоритета существующего процеса в NT [D5, NT4
Здравствуйте, Bir, Вы писали:
Bir>Господа, не подскажите сабж... Bir>Есть тема , что при достаточно большом количестве терминальных сессий прога начинает подвисать... Bir>Проблема решается если зайдя в Task Manager изменить процессам приоритет на более низкий. Bir>Хотелось бы автоматизизовать данную процедуру Bir>Нельзя ли перехватывать момент создания в системе определенного процеса и изменять ему приоритет... Bir>???
Проще всего, по-моему, воспользоваться встроенной командой start:
START ["заголовок"] [/Dпуть] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME| /ABOVENORMAL | /BELOWNORMAL]
[/WAIT] [/B]
[команда/программа] [параметры]
"заголовок" Заголовок окна.
путь Рабочий каталог.
LOW Запуск приложения с приоритетом IDLE.
NORMAL Запуск приложения с приоритетом NORMAL.
HIGH Запуск приложения с приоритетом HIGH.
REALTIME Запуск приложения с приоритетом REALTIME.
ABOVENORMAL Запуск приложения с классом приоритета ABOVENORMAL
BELOWNORMAL Запуск приложения с классом приоритета BELOWNORMAL
команда/программа
Если это внутренняя команда cmd.exe или пакетный файл,
обработчик команд (cmd.exe) запускается с ключом /K.
Это означает, что окно не будет закрыто после завершения
команды.
Если это не внутренняя команда cmd.exe и не пакетный файл,
значит, это программа, которая будет запущена в графическом
или текстовом окне.
параметры Параметры, передаваемые команде/программе.
Но это не поможет, если приложение само меняет свой приоритет
Re[2]: Изменение приоритета существующего процеса в NT [D5,
Здравствуйте, Bir, Вы писали:
Bir>В общем нельзяли пример кода или скажите где взять качественную доку... Прошу потому как раньше ничего такого не писал...
Господа, читайте Рихтера
... << RSDN@Home 1.0 beta 3 >>
Re: Изменение приоритета существующего процеса в NT [D5, NT4
Здравствуйте, Bir, Вы писали:
Bir>Господа, не подскажите сабж... Bir>Есть тема , что при достаточно большом количестве терминальных сессий прога начинает подвисать... Bir>Проблема решается если зайдя в Task Manager изменить процессам приоритет на более низкий. Bir>Хотелось бы автоматизизовать данную процедуру Bir>Нельзя ли перехватывать момент создания в системе определенного процеса и изменять ему приоритет... Bir>???
SetPriorityClass
The SetPriorityClass function sets the priority class for the specified process. This value together with the priority value of each thread of the process determines each thread's base priority level.
BOOL SetPriorityClass(
HANDLE hProcess, // handle to process
DWORD dwPriorityClass // priority class
);