Оглавление
1. Задание
Программа предназначена для предоставления информации пользователю о выполняемых приложениях и процессах, детальной информации по каждому процессу, а также управление процессами и окнами (закрытие процесса, закрытие окна, изменение приоритета процесса).
2. Методы решения и алгоритмы
Таблица процессов и окон отображается на двух закладках processes и windows, соответственно. Список процессов и окон выводится посредством элементов ListView. Управление и получение дополнительной информации об окне/процессе осуществляется через контекстное меню PopUpMenu1 и PopUpMenu2 (щелчок правой кнопкой на строке в списке ListView1 или ListView2, соотвественно).
Основные функции и процедуры проекта:
//процедура составления списка процессов
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);
3. Руководство пользователя
На главном окне программы вы видите две закладки со списками процессов и окон, отображающих различную системную информацию. Выделяя строчку в списке для необходимого окна/процесса можно производить с ним различные действия.
Двойной щелчок мыши на элементе списка, либо выделение его мышкой и нажатие клавиши Enter откроет окно с дополнительной информацией для данного окна/процесса.
Нажатие правой кнопкой мыши на определённом пункте списка выведет контекстное меню, через которое возможно выполнение таких действий, как принудительное обновление списка, закрытие окна/процесса, изменения приоритета процесса.