довище розробки С + + Builder 6.0. br/>
Проектування
програмний код локальний комп'ютер
Завдання проектування була розбита на кілька етапів:
. Отримання імені локального комп'ютера, на якому запущено програму і створення запиту, який буде керувати зібраними даними продуктивності процесів
. Створення компонента Timer. У його обробник події поміщається основний код програми
. Отримання списку імен процесів запущених на локальному комп'ютері
. Видалення в імені процесу вирішення В«exeВ»
. Додавання порядкового номера до повторюваного імені процесу
. Збори необроблених значень даних для всіх лічильників у вказаному запиті
Після двох спрацьовувань таймера додаток заново складе список імен запушених процесів і далі працюватиме за вищеописаного алгоритму, але перед цим очистить список.
Для реалізації вище описаного алгоритму необхідно створити на головній формі поле з використанням компонента StringGrid, яке являє собою таблицю, що містить рядки. Це поле буде автоматично заповнюватися отриманою інформацією про лічильниках процесів та іменами процесів локального комп'ютера. Також необхідно, щоб ця інформація постійно оновлювалася. p align="justify"> Так само на поле форми поміщаємо дві кнопки з іменами В«Button1В» і В«Button2В».
Кнопка В«Button1В» потрібна для завершення обраного користувачем процесу, а кнопка В«Button2В» для виходу і завершення роботи програми.
Крім на форму поміщається компонент класу TTimer з ім'ям В«Timer1В»:
Цей компонент потрібен для організації поновлення значення лічильників.
В
Рис.1.1 Головна форма програми (Form1)
Кодування та налагодження
Метою даного етапу є програмна реалізація проектних рішень, отриманих на етапі проектування, тобто створення працездатного програмного продукту. Для реалізації проекту вибрана мова С + + Builder 6.0, а так само скористаємося функціями бібліотек Tool Help Library (THL) і Performance Data Helper (PDH)
Розглянемо докладно кожний етап:
. Отримання знімка всіх процесів
Для отримання списку запущених процесів необхідно ініціалізувати структуру PROCESSENTRY32:
typedef struct tagPROCESSENTRY32 {dwSize; Розмір струтури в байтах
DWORD cntUsage; th32ProcessID; Ідентифікатор процессаth32DefaultHeapID; th...