Сегодня мы будем делать простейший диспетчер задач ОС Windows. Он будет очень примитивный и уметь делать только две команды: получить список всех процессов в ОС и снять процесс)
Приступим:
1. Запускаем нашу любимою Visual Studio
2. Создаем проект WinForms
3. Добавляем на форму из панели элементов две кнопки типа Button и один ListBox
4. первую кнопку назовем "Получить список процессов", а вторую "Снять выделенный процесс"
5. Обработаем событие Click для кнопки "Получить список процессов" и напишем следующий код:
7. Далее обработаем событие Click для кнопки "Снять выделенный процесс" и напишем следующее
Вот что получилось у меня
Весь выше представлен код очень прост и я надеюсь Вам не состоит никакого труда в нем разобраться, ну а если возникнут какие то вопросы то пишите в комментариях или мне на почту, отвечу с удовольствием =)
Удачи в ПРОграммирование.
Скачать проект.
UPD
Ответ на вопрос анонимного читателя ;)
Все просто, используйте wmi, о нем я когда- то уже писал.
Добавьте следующий метод в программу:
Пример работы программы:
Приступим:
1. Запускаем нашу любимою Visual Studio
2. Создаем проект WinForms
3. Добавляем на форму из панели элементов две кнопки типа Button и один ListBox
4. первую кнопку назовем "Получить список процессов", а вторую "Снять выделенный процесс"
5. Обработаем событие Click для кнопки "Получить список процессов" и напишем следующий код:
listBox1.Items.Clear();6. Добавляем пространство имен System.Diagnostics без него у нас ничего не получится )
var processList = Process.GetProcesses();
foreach (var proc in processList)
listBox1.Items.Add(String.Format("{0}.exe", proc.ProcessName));
7. Далее обработаем событие Click для кнопки "Снять выделенный процесс" и напишем следующее
if (listBox1.SelectedIndex != -1)8. А теперь еще сделаем чтоб при нажатие в listBox_e на имени процесса он снимался, для этого обрабатываем события DoubleClick в listBox и вызовем наш код из пункта 7,
{
var taskName = listBox1.Items[listBox1.SelectedIndex].ToString();
taskName = taskName.Substring(0, taskName.Length - 4);
foreach (var procToKill in Process.GetProcessesByName(taskName))
procToKill.Kill();
button1.PerformClick();
}
button2.PerformClick();Все, компилируем и смотрим на результат)
Вот что получилось у меня
Весь выше представлен код очень прост и я надеюсь Вам не состоит никакого труда в нем разобраться, ну а если возникнут какие то вопросы то пишите в комментариях или мне на почту, отвечу с удовольствием =)
Удачи в ПРОграммирование.
Скачать проект.
UPD
Ответ на вопрос анонимного читателя ;)
Все просто, используйте wmi, о нем я когда- то уже писал.
Добавьте следующий метод в программу:
public void BrowsApp(string nameApp)И заменить код в обработчике событий listBox1_DoubleClick вместо button2.PerformClick(); напишите BrowsApp(listBox1.Items[listBox1.SelectedIndex].ToString());
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (identity != null)
{
string currentUser = identity.Name.Split('\\')[1];
string query = "Select * from Win32_Process Where Name = \"" + nameApp + "\"";
var searcher = new ManagementObjectSearcher(query);
var processes = searcher.Get();
foreach (ManagementObject proc in processes)
{
string owner;
var argList = new[] { string.Empty };
int returnVal = Convert.ToInt32(proc.InvokeMethod("GetOwner", argList));
if (returnVal == 0)
owner = argList[0];
else
continue;
if (owner != currentUser)
continue;
MessageBox.Show(proc["ExecutablePath"].ToString());
}
}
}
Пример работы программы:
Сегодня мы будем делать простейший диспетчер задач ОС Windows. Он будет очень примитивный и уметь делать только две команды: получить список всех процессов в ОС и снять процесс)
Приступим:
1. Запускаем нашу любимою Visual Studio
2. Создаем проект WinForms
3. Добавляем на форму из панели элементов две кнопки типа Button и один ListBox
4. первую кнопку назовем "Получить список процессов", а вторую "Снять выделенный процесс"
5. Обработаем событие Click для кнопки "Получить список процессов" и напишем следующий код:
7. Далее обработаем событие Click для кнопки "Снять выделенный процесс" и напишем следующее
Вот что получилось у меня
Весь выше представлен код очень прост и я надеюсь Вам не состоит никакого труда в нем разобраться, ну а если возникнут какие то вопросы то пишите в комментариях или мне на почту, отвечу с удовольствием =)
Удачи в ПРОграммирование.
Скачать проект.
UPD
Ответ на вопрос анонимного читателя ;)
Все просто, используйте wmi, о нем я когда- то уже писал.
Добавьте следующий метод в программу:
Пример работы программы:
Приступим:
1. Запускаем нашу любимою Visual Studio
2. Создаем проект WinForms
3. Добавляем на форму из панели элементов две кнопки типа Button и один ListBox
4. первую кнопку назовем "Получить список процессов", а вторую "Снять выделенный процесс"
5. Обработаем событие Click для кнопки "Получить список процессов" и напишем следующий код:
listBox1.Items.Clear();6. Добавляем пространство имен System.Diagnostics без него у нас ничего не получится )
var processList = Process.GetProcesses();
foreach (var proc in processList)
listBox1.Items.Add(String.Format("{0}.exe", proc.ProcessName));
7. Далее обработаем событие Click для кнопки "Снять выделенный процесс" и напишем следующее
if (listBox1.SelectedIndex != -1)8. А теперь еще сделаем чтоб при нажатие в listBox_e на имени процесса он снимался, для этого обрабатываем события DoubleClick в listBox и вызовем наш код из пункта 7,
{
var taskName = listBox1.Items[listBox1.SelectedIndex].ToString();
taskName = taskName.Substring(0, taskName.Length - 4);
foreach (var procToKill in Process.GetProcessesByName(taskName))
procToKill.Kill();
button1.PerformClick();
}
button2.PerformClick();Все, компилируем и смотрим на результат)
Вот что получилось у меня
Весь выше представлен код очень прост и я надеюсь Вам не состоит никакого труда в нем разобраться, ну а если возникнут какие то вопросы то пишите в комментариях или мне на почту, отвечу с удовольствием =)
Удачи в ПРОграммирование.
Скачать проект.
UPD
Ответ на вопрос анонимного читателя ;)
Все просто, используйте wmi, о нем я когда- то уже писал.
Добавьте следующий метод в программу:
public void BrowsApp(string nameApp)И заменить код в обработчике событий listBox1_DoubleClick вместо button2.PerformClick(); напишите BrowsApp(listBox1.Items[listBox1.SelectedIndex].ToString());
{
WindowsIdentity identity = WindowsIdentity.GetCurrent();
if (identity != null)
{
string currentUser = identity.Name.Split('\\')[1];
string query = "Select * from Win32_Process Where Name = \"" + nameApp + "\"";
var searcher = new ManagementObjectSearcher(query);
var processes = searcher.Get();
foreach (ManagementObject proc in processes)
{
string owner;
var argList = new[] { string.Empty };
int returnVal = Convert.ToInt32(proc.InvokeMethod("GetOwner", argList));
if (returnVal == 0)
owner = argList[0];
else
continue;
if (owner != currentUser)
continue;
MessageBox.Show(proc["ExecutablePath"].ToString());
}
}
}
Пример работы программы:
0 коммент.:
Отправить комментарий