.NET 3.x mini-FAQ по получению и убиванию процессов. - C#

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

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

Всем привет. Эту маленькую статью я пишу для таких новиков как я, поэтому профи, пожалуйста, не пишите типо "это и так все знают"! Вот небольшие кодики с маленькими пояснениями. Пищу с мобилы(ну как обычно) так что ошибки синтаксиса могут быть. Если что либо не работает пишите! Сначала в прогу необходимо добавить пространстово имен:
using system.diagnostic
и добавьте листбокс. Вот пример получения процессов
Process[] pr;
pr=process.getprocess();
foreach(Process proc in pr)// извиняйте фигурных скобок на мобиле нету...
(Listbox1.items.add(proc.processname);)
Вот обработчик "убития" при выборе из списка
pr[listbox1.selectedindicies[0].kill()] // ошибка может быть в квадратных скобках перед килл()
Следующий код автоматически убивает по имени
foreach()//не стал писать, тут тоже самое
(
If(proc.processname.tolower=="name")
(proc.kill();
Proc.waitforexit();
Break;
)
)
Ну и самое по мне интересное. Получение оконных процессов//правда я этот кусок незапускал, а просто наткнулся в инете.
Foreach(Process p in Process.GetProcesses(system.environment.MachineName))
(if (p.MainWindowHandle != IntPtr.Zero)
(listbox1.items.add(p.tostring());
)
)
Прошу помидорами некидать!) Понимаю что комментариев нету, но с мобилы много не напишешь, да и код вроде простой...

Решение задачи: «.NET 3.x mini-FAQ по получению и убиванию процессов.»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Diagnostics; //Вот это пространство имён нужно добавить.
 
namespace WindowsFormsApplication
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            //свойство добавляемого объекта, которое будет отображаться 
            //в списке в виде текста (как-то так)
            this.listBox1.ValueMember = "ProcessName"; 
        }
 
        private void btnGetProcesses_Click(object sender, EventArgs e)
        {
            Process[] pr = Process.GetProcesses(); //Всё в массиве список процессов
            foreach (Process proc in pr) //Это уже добавление списка процессов в ListBox с именем listBox1
                listBox1.Items.Add(proc); //Добавляем в список объект. 
            //Но отображено будет название процесса, так как у listBox1 свойство ValueMember == "ProcessName"
        }
 
        private void btnDelSelected_Click(object sender, EventArgs e)
        {
            //Так как в список был добавлен экземпляр класса Process, то получаем к нему доступ через
            //SelectedItem, который возвращает тип Object. Так как любой класс наследует от Object,
            //то соответственно Item может ссылаться на любой объект класса. Мы добавляли в listBox1
            //(listBox1.Items.Add(proc);) экземпляр класса Process. Поэтому приводим к типу Process
 
            //В listBox1 должен быть выделен элемент
            ((Process)listBox1.SelectedItem).Kill();
 
            //Можно упростить строку выше для понимания новичком
            //Process proc = (Process)listBox1.SelectedItem;
            //proc.Kill();
            //Это одно и тоже по сути
        }
 
        private void btnKillSkype_Click(object sender, EventArgs e)
        {
            foreach (Process proc in listBox1.Items)
            {
                if (proc.ProcessName == "Skype")
                {
                    proc.Kill();
                    proc.WaitForExit();
                    break; //например надо убить много процессов с одним именем. Значит убираем break
                }
            }
        }
 
        private void btnGetWinProc_Click(object sender, EventArgs e)
        {
            //Тут походу получить процессы те, окна которых не скрыты. (не факт, но вроде так)
            foreach (Process p in Process.GetProcesses(Environment.MachineName))
            {
                if (p.MainWindowHandle != IntPtr.Zero)
                    listBox1.Items.Add(p);
            }
        }
    }
}

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


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

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

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