Задать вопрос
@deadspace12

Как изменить приоритет действующего процесса из списка диспетчера задач?

Помогите плиз с чего начать чтобы изменить приоритет действующего процесса
вот скрин моей формы я все реализовал кроме изменения приоритета.Из скрина я ввожу имя файла(т.е процесса) с расширением .exe на пример допусти browser.exe и нажимаю кнопку изменения приоритета
616d6ec01f509980432977.png
я источников мало находил по своей проблеме и некоторые источники не понятные подскажите плиз с чего начать как реализовать?
  • Вопрос задан
  • 100 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 2
Любой подобный вопрос нужно решать, начиная с того, как это нативный API делается:
https://docs.microsoft.com/en-us/windows/win32/api...
А вот как вызывать подобные нативные функции:
https://docs.microsoft.com/en-us/dotnet/standard/n...
Таким образом, можно сделать вот так:
[DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)]
public static extern bool SetPriorityClass(IntPtr handle, PriorityClass priorityClass);
public enum PriorityClass : uint
{
       ABOVE_NORMAL_PRIORITY_CLASS = 0x8000,
       BELOW_NORMAL_PRIORITY_CLASS = 0x4000,
       HIGH_PRIORITY_CLASS = 0x80,
       IDLE_PRIORITY_CLASS = 0x40,
       NORMAL_PRIORITY_CLASS = 0x20,
       PROCESS_MODE_BACKGROUND_BEGIN = 0x100000,// 'Windows Vista/2008 and higher
       PROCESS_MODE_BACKGROUND_END = 0x200000,//   'Windows Vista/2008 and higher
       REALTIME_PRIORITY_CLASS = 0x100
}


public static bool SetProcessPriority(Process process, PriorityClass priorityClass) =>
  SetPriorityClass(process.Handle, priorityClass);

Но так делать не нужно, тк есть свойство Process.PriorityClass
Через него можно так:
public static void SetProcessPriority(Process process, ProcessPriorityClass priorityClass) =>
  process.PriorityClass = priorityClass;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы