Поменять приоритет процесса запущенного приложения и отобразить в textbox - C#

Узнай цену своей работы

Формулировка задачи:

Привет, есть такая проблема: программа запускает процесс и выводит в textbox его приоритет. Дальше нужно открыть диспетчер задач, найти этот процесс и поменять там его приоритет, затем вернуться в выполняемую программу и обновить textbox и там должен вывестись актуальный приоритет, который мы поменяли в диспетчере.
 Process proc;
        public void NewProc()                   // Метод, запускаемый в отдельном потоке
        {
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
 
            proc = new Process();
            proc.StartInfo.FileName = "C:\\Users\\Сергей\\Desktop\\Учеба\\ИСИС\\LABS\\LABS\\Windows\\Примеры\\LRS\\Child.exe";
            proc.Start();                                          // Запускаем процесс
            
            tbID.Text = Convert.ToString(proc.Id);                // Получаем id процесса и выводим в textbox             
 
            //tbPriorClass.Text = Convert.ToString(proc.PriorityClass);    // Получаем и выводим приоритет процесса

            while (!proc.WaitForExit(1000));
            tbExitCode.Text = Convert.ToString(proc.ExitCode);              // Получаем ExitCode

        }

        private void btCreateProc_Click(object sender, EventArgs e)          // Процесс запускается в отдельном потоке
        {
            Thread th = new Thread(NewProc);
            th.Start();
                                      
          //  OpenProcFunction();
           // closeHandFunction();
 
        }
     
 --------------------------------------------------------------------------
        private void btnRefreshPriority_Click(object sender, EventArgs e)                        //Обновление Приоритета
        {            
            tbPriorClass.Text = Convert.ToString(proc.PriorityClass);
        }
Например, я запускаю процесс и нажимаю btnRefreshPriority_Click - прога выводит приоритет. Далее, после того как я меняю его в диспетчере я снова нажимаю на btnRefreshPriority_Click и должен получить новый приоритет

Решение задачи: «Поменять приоритет процесса запущенного приложения и отобразить в textbox»

textual
Листинг программы
Process proc;
 
public void NewProc()
{
    proc = Process.Start(@"C:\Users\Сергей\Desktop\Учеба\ИСИС\LABS\LABS\Windows\Примеры\LRS\Child.exe");
    tbID.Text = Convert.ToString(proc.Id);
    
    proc.WaitForExit();
    tbExitCode.Invoke((Action)(
        () => tbExitCode.Text = proc.ExitCode.ToString()
    ));
}
 
 
private void btCreateProc_Click(object sender, EventArgs e)
{
    Thread th = new Thread(NewProc);
    th.Start();
}
 
private void btnRefreshPriority_Click(object sender, EventArgs e)
{   
    proc.Refresh(); // Обновляем информацию о процессе
    tbPriorClass.Text = proc.HasExited ? "Процесс завершился" : proc.PriorityClass.ToString();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы