Изменение приоритета существующего процеса в NT [D5, NT4]
От: Bir  
Дата: 20.12.02 03:35
Оценка:
Господа, не подскажите сабж...
Есть тема , что при достаточно большом количестве терминальных сессий прога начинает подвисать...
Проблема решается если зайдя в Task Manager изменить процессам приоритет на более низкий.
Хотелось бы автоматизизовать данную процедуру
Нельзя ли перехватывать момент создания в системе определенного процеса и изменять ему приоритет...
???
Re: Изменение приоритета существующего процеса в NT [D5, NT4
От: Bir  
Дата: 20.12.02 04:45
Оценка:
В общем нельзяли пример кода или скажите где взять качественную доку... Прошу потому как раньше ничего такого не писал...
Пока с БД только в основном работал.
Уточнение задачи:
Нужно сканировать список NT процессов (например по таймеру, раз уж отслеживать появление нового геморно),
Затем искать все процессы с определенным именем и менять им приоритет на пониже
Например так
SetThreadPriority(ThreadHandle, THREAD_PRIORITY_LOWEST)

Получить список всех процессов?
В цикле по ним ходить и искать "ХХХХ.ЕХЕ"
Как грамотно получать ThreadHandle?
Правильную ли процедуру нашел? — ну хотя это потом и сам проверю
Re: Изменение приоритета существующего процеса в NT [D5, NT4
От: Алексей Владимирович Миронов Россия  
Дата: 20.12.02 04:46
Оценка:
Здравствуйте, 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,
От: LaFlour Австралия blog: http://spaces.live.com/laflour
Дата: 20.12.02 05:53
Оценка:
Здравствуйте, Bir, Вы писали:

Bir>В общем нельзяли пример кода или скажите где взять качественную доку... Прошу потому как раньше ничего такого не писал...


Господа, читайте Рихтера
... << RSDN@Home 1.0 beta 3 >>
Re: Изменение приоритета существующего процеса в NT [D5, NT4
От: kmn Украина  
Дата: 20.12.02 08:34
Оценка:
Здравствуйте, 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
);

For example:


SetPriorityClass(::GetCurrentProcess(), ABOVE_NORMAL_PRIORITY_CLASS);
Re[2]: Изменение приоритета существующего процеса в NT [D5,
От: b_monkey Беларусь  
Дата: 20.12.02 11:33
Оценка:
Здравствуйте, Bir, Вы писали:

Process32First, Process32Next -- ну а на этом собсно и сё будет найдено (исключая NT)
а для NT -- EnumProcesses
best regards vitaly voloshin
WBR,
vitaly voloshin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.