2 Решение задачи
Для создания программы использовался язык программирования Delphi (можно использовать C++ Builder, сложностей в переводе не возникнет).
Система визуального объектно-ориентированного проектирования Delphi позволяет:
Создавать законченные приложения для Windows самой различной направленности.
Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений; интерфейс удовлетворяет всем требованиям Windows и автоматически настраивается на ту систему, которая установлена, поскольку использует функции, процедуры и библиотеки Windows.
Создавать свои динамически присоединяемые библиотеки компонентов, форм, функций, которые потом можно использовать из других языков программирования.
Создавать мощные системы работы с базами данных любых типов.
Формировать и печатать сложные отчеты, включающие таблицы, графики и т.п.
Создавать справочные системы, как для своих приложений, так и для любых других.
Создавать профессиональные программы установки для приложений Windows, учитывающие всю специфику и все требования операционной системы.
2.1 Методы решения и алгоритмы
Таблица процессов и окон отображается на двух закладках processes и windows, соответственно. Список процессов и окон выводится посредством элементов ListView. Управление и получение дополнительной информации об окне/процессе осуществляется через контекстное меню PopUpMenu1 и PopUpMenu2 (щелчок правой кнопкой на строке в списке ListView1 или ListView2, соотвественно).
Интерфейс программы приведён на рисунке 1
Рисунок 1 – Интерфейс программы
Основные функции и процедуры проекта:
//процедура составления списка процессов
procedure ListProcesses;
//процедура составления списка окон
procedure ListWindows;
//процедура составления списка модулей
procedure ListModules(OwnerID: Cardinal);
//процедура составления списка потоков
procedure ListThreads(OwnerID: Cardinal);
//процедура составления списка куч (heap)
procedure ListHeaps(OwnerID: Cardinal);
//процедура составления списка окон для текущего процесса
procedure ListThreadWindows;
//обработчики событий
//создание формы
procedure TForm1.FormCreate(Sender: TObject);
//выделение элемента списка процессов
procedure TForm1.ListView1Click(Sender: TObject);
//двойное нажатие процесса
procedure TForm1.ListView1DblClick(Sender: TObject);
//обработка нажатия кнопок клавиатуры
procedure TForm1.ListView1KeyUp(Sender: TObject; var Key: Word;
//нажатие пункта "Details" контестного меню
procedure TForm1.Details1Click(Sender: TObject);
//нажатие пункта "Kill process" контестного меню
procedure TForm1.KillProcess1Click(Sender: TObject);
//нажатие пункта "Refresh List" контестного меню
procedure TForm1.RefreshList1Click(Sender: TObject);
//нажатие пункта "Close Window" контестного меню
procedure TForm1.CloseWindow1Click(Sender: TObject);
//нажатие пункта "Refresh List" контестного меню
procedure TForm1.RefreshList2Click(Sender: TObject);
//обновление по таймеру информации об использовании ОП
procedure TForm1.Timer1Timer(Sender: TObject);
//процедуры установки приоритета
procedure SetPriority(priority:integer);
//установка низкого приоритета
procedure TForm1.Idle1Click(Sender: TObject);
//установка нормального приоритета
procedure TForm1.Normal1Click(Sender: TObject);
//установка высокого приоритета
procedure TForm1.High1Click(Sender: TObject);
//установка приоритета реального времени
procedure TForm1.Realtime1Click(Sender: TObject);
На рисунке 2 представлена схема работы программы
Рисунок 2 – Схема работы диспетчера задач
Рисунок 3 – Диаграмма вариантов использования