Книга: Программирование КПК и смартфонов на .NET Compact Framework
Перечисление процессов
Разделы на этой странице:
Перечисление процессов
Для отображения списка процессов используется функция, код которой приведен в листинге 7.27.
Листинг 7.27
private void fillProcessList() {
Cursor.Current = Cursors.WaitCursor;
// Получаем список запущенных процессов
processes = Process.GetProcesses();
// Заполняем ListView
ListViewItem lvi;
listView.BeginUpdate();
listView.Items.Clear();
foreach (Process p in processes) {
lvi = new ListViewItem(p.ProcessName);
//lvi.SubItems.Add("ID");
listView.Items.Add(lvi);
}
listView.EndUpdate();
if (listView.Items.Count > 0) {
listView.Items[0].Selected = true;
listView.Items[0].Focused = true;
}
Cursor.Current = Cursors.Default;
}
Список активных процессов извлекается при помощи класса Process
. Основой класса является метод GetProcesses
, приведенный в листинге 7.28.
Листинг 7.28
public static Process[] GetProcesses() {
ArrayList procList = new ArrayList();
IntPtr handle = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if ((int)handle > 0) {
try {
PROCESSENTRY32 peCurrent;
PROCESSENTRY32 pe32 = new PROCESSENTRY32();
byte[] peBytes = pe32.ToByteArray();
int retval = Process32First(handle, peBytes);
while(retval == 1) {
peCurrent = new PROCESSENTRY32(peBytes);
Process proc =
new Process(new IntPtr((int)peCurrent.PID), peCurrent.Name,
(int)peCurrent.ThreadCount, (int)peCurrent.BaseAddress);
procList.Add(proc);
retval = Process32Next(handle, peBytes);
}
} catch(Exception ex) {
throw new Exception("Exception: " + ex.Message);
}
CloseToolhelp32Snapshot(handle);
return (Process[])procList.ToArray(typeof(Process));
} else {
throw new Exception("Unable to get processes!");
}
}
С помощью данного метода можно узнать детальную информацию о каждом процессе.
- Глава 7 Чего нужно опасаться при моделировании бизнес-процессов. Проектные риски моделирования бизнеспроцессов
- Эффективное взаимодействие процессов архитектуры Classic Server
- 1.2. Понятие информации. Общая характеристика процессов сбора, передачи, обработки и накопления информации
- 3.4.2. Остановка процессов
- 3.4.3. Просмотр процессов
- Лекция 16. Взаимодействие процессов
- 1.1.3. Уязвимости процессов накопления знаний (самообучения)
- Пример: перечисление семейств шрифтов
- 3.2. Создание процессов
- 3.3.2. Оценка информационной безопасности на основе модели зрелости процессов
- ГЛАВА 1 Обзор средств взаимодействия процессов Unix
- Планирование процессов управления контентом