Диспетчер задач. WinAPI

Автор: Олег Иванов, 28 Сентября 2010 в 11:30, курсовая работа

Описание работы

1. ТЕХНИЧЕСКОЕ ЗАДАНИЕ
1.1 Общие сведения
Наименование системы
Система диспетчеризации процессов.
Плановые сроки начала и окончания работы
Разработка данной системы была начата 20.02.2008 г.
Завершение разработки планируется на 25.04.2008 г.
Порядок оформления работы
1. Обоснование необходимости разработки программы
Постановка задачи.
Сбор исходных материалов.
Выбор и обоснование критериев эффективности и качества разрабатываемой программы.
2. Научно-исследовательские работы
Определение структуры входных и выходных данных.
Предварительный выбор методов решения задач.
Обоснование целесообразности применения ранее разработанных программ.
Определение требований к техническим средствам.
Обоснование принципиальной возможности решения поставленной задачи.
3. Разработка и утверждение технического задания
Определение требований к программе.
Разработка технико-экономического обоснования разработки программы.
Определение стадий, этапов и сроков разработки программы и документации на нее.
Выбор языков программирования.
Согласование и утверждение технического задания.
1.2. Назначение и цели создания системы
1.2.1. Назначение системы
Программный продукт предназначен для отображения списка процессов системы, получения дополнительной информации о процессах и работы с ними.
1.2.2 .Цели создания системы
Программный продукт предназначен для отображения списка запущенных процессов. Программа должна включать в себя средства по завершению процесса, установке приоритета процесса, выключению, перезагрузке и смене профиля компьютера.
1.3. Характеристики объектов систематизации
1.3.1. Краткие сведения об объекте автоматизации
Объектом автоматизации является представление списка процессов, запущенных в системе, в виде удобном для восприятия пользователем и реализация операций над ними.
1.3.2. Сведения об условиях эксплуатации
Данная система проектируется лишь в учебных целях, вследствие чего будет эксплуатироваться узким кругом лиц на домашних персональных компьютерах.
1.4. Требования к системе

Работа содержит 1 файл

диспетчер задач.doc

— 905.50 Кб (Скачать)

             в) NORMAL_PRIORITY_CLASS – класс нормальных приоритетов процессов. Обычно процесс  имеет данный уровень приоритета;

             г) IDLE_PRIORITY_CLASS – класс самых низких приоритетов процессов. Потоки процессов, принадлежащих данному классу приоритетов, вытесняются всеми потоками процессов, имеющих более высокий уровень приоритета, и выполняются только в том случае, если система простаивает;

 

    4. ТЕХНОЛОГИЧЕСКАЯ ЧАСТЬ

      4.1. Входные данные

       Входными  данными являются процессы, запущенные в системе.

      4.2. Выходные данные

       Выходными данными являются процессы, запущенные в системе, и их параметры.

      4.3.Руководство  пользователя

      4.3.1.Назначение программы

      Данный программный продукт представляет собой диспетчер задач. Программа отображает необходимую информацию о процессах (идентификатор процесса, количество запущенных потоков каждым процессом, имя процесса,  а также количество памяти, занимаемое процессом), предоставляет функции по завершению процесса, изменяет приоритет процесса, отображает модули, используемые процессом, предоставляет средства по работе с компьютером (выключение, смена профиля, перезагрузка). 

      4.1.2. Требования к  аппаратной и программной средам

     Условия выполнения программы, полученной в  результате реализации данного проекта, должны отвечать следующим требованиям:

  1. программа должна выполняться в одной из операционных систем      Windows 98/ME/NT/2000/XP;
  2. программа может выполняться на IBM-PC совместимом компьютере с процессором не ниже 80486;
  3. для программы необходимо наличие 176 кб свободного места на жестком диске;
  4. для работы с программой необходимо наличие устройств ввода (клавиатура, манипулятор «мышь»);
  5. для отображения результатов работы программы необходимо наличие устройства вывода (монитор);

      4.3.3.Выполнение программы

          4.3.3.1 Запуск программы.

     Запуск  программы происходит после двойного щелчка кнопкой мыши по иконке приложения. После запуска приложения появится окно

Рисунок 4.1 Главное окно программы

          4.3.3.2 Завершение процесса

      Для завершения процесса необходимо выбрать  процесс из списка и нажать кнопку «Завершить процесс».

 

           4.3.3.3 Изменение приоритета процесса

      Для изменения приоритета процесса необходимо выбрать процесс из списка, выбрать новый уровень приоритета и нажать кнопку «Задать приоритет».

          4.3.3.4 Выгрузить процесс

      Для завершения процесса без получения  прав доступа и проверки привилегий необходимо выбрать процесс из списка и нажать кнопку «Выгрузить процесс».

          4.3.3.5 Смена профиля

      Для того, чтобы отключить текущий  профиль необходимо нажать кнопку «Смена профиля».

          4.3.3.6 Перезагрузка компьютера

      Для перезагрузки компьютера необходимо нажать кнопку «Перезагрузка компьютера».

          4.3.3.7 Выключение компьютера

      Для выключения перезагрузки компьютера необходимо нажать кнопку «Выключение компьютера».

      4.3.4. Сообщения оператору.

  1. При завершении процесса производится опрос пользователя о подтверждении завершения процесса. Текст сообщения – «Вы уверены». Для подтверждения необходимо нажать кнопку «Да», для отказа – кнопку «Нет».

Рисунок 4.2 Сообщение о подтверждении завершения процесса 

  1. При перезагрузке компьютера  производится опрос  пользователя о подтверждении перезагрузки. Текст сообщения – «Вы точно хотите перезагрузить компьютер?». Для подтверждения необходимо нажать кнопку «Да», для отказа – кнопку «Нет».
 

Рисунок 4.3 Сообщение о подтверждении перезагрузки компьютера 

  1. При выключении компьютера  производится опрос  пользователя о подтверждении выключения. Текст сообщения – «Вы точно хотите выключить компьютер?». Для подтверждения необходимо нажать кнопку «Да», для отказа – кнопку «Нет».
 

Рисунок 4.4 Сообщение о подтверждении выключения компьютера 

  1. При смене  профиля  производится опрос пользователя о подтверждении смены профиля. Текст сообщения – «Вы точно хотите отлогиниться». Для подтверждения необходимо нажать кнопку «Да», для отказа – кнопку «Нет».

    Рисунок 4.5 Сообщение о смене профиля 

  1. При изменении  уровня привилегии процесса  выводится сообщение о том что для выбранного процесса был задан новый приоритет.
 

Рисунок 4.6 Сообщение о изменении приоритета процесса

 

    5. ЛИТЕРАТУРА

  1. Педзолт Ч. Программирования для Windows 95/Пер, англ – 1-е изд. – СПб; 495 с.; ил.
  2. Румянцев П.В. Азбука программирования в Win32API. - М.:Горячая линия-телеком, 2002. – 312с.
  3. Microsoft Developer Network http://msdn.microsoft.com.
  4. Дейтел  П.,  Дейтел X. «Как программировать на C++»: Третье издание. Пер. с англ. - . М.: ЗАО «Издательство БИНОМ», 2001 г. – 1152 с.: ил

 

    6. Приложение 1

#include <windows.h>

#include <time.h>

#include <string.h> 
 

#include <windowsx.h>

#include <tchar.h>

#include <tlhelp32.h>

#include <stdlib.h>

#include <shellapi.h>

#include <process.h> 
 
 

# define ID_BUTTON_V_P 3000

# define ID_BUTTON_Z_P 3001

# define ID_BUTTON_O_S 3002

# define ID_BUTTON_KILL 3003

# define ID_BUTTON_TURN_OFF 3004

# define ID_BUTTON_LOG_OFF 3005

# define ID_BUTTON_REBOOT 3006

# define ID_EDIT 2000

# define ID_LIST 1000

# define ID_COMBO 1500

#define TIMER_SEC 1

#define IDC_COUNT 1010 

static HWND hCombo,hwndDlg;

static HWND hList;

static HWND hList1;

static HWND hPr;

static HWND hEdit;

int num=0;

int kursor=0;

int x11=950;

int y11=600;

bool par=false; 

int ListProcesses(HWND hwnd);

int ProcessesInfo(HWND hwnd,DWORD dwProcessID);

void Terminate(DWORD ID);

void KillProcess(DWORD ID);

void SetListPrioryties(HWND hwnd);

inline BOOL GetDebugPriority(void);

BOOL SetCurrentPrivilege( LPCTSTR Privilege, BOOL bEnablePrivilege );

////////////////////////////////////////////////////////////////////

MEMORYSTATUS ms;

int Count;

int i;

HICON hIcon;

HANDLE h;

STARTUPINFO si={sizeof(si)};

PROCESS_INFORMATION pi; 

static DWORD ID; 

static DWORD Prior; 

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

HINSTANCE hInstance;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static char szAppName[] = "T_M" ;

HWND hwnd ;

MSG msg ;

WNDCLASSEX wndclass ;

wndclass.cbSize = sizeof (wndclass) ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc = WndProc ;

wndclass.cbClsExtra = 0 ;

wndclass.cbWndExtra = 0 ;

wndclass.hInstance = hInstance ;

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ;

wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ;

//wndclass.lpszMenuName = "IDR_MENU1" ;

wndclass.lpszClassName = szAppName ;

wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;

RegisterClassEx (&wndclass) ;

hwnd = CreateWindow (szAppName, "Task Manager",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT, CW_USEDEFAULT,

CW_USEDEFAULT, CW_USEDEFAULT,

NULL, NULL, hInstance, NULL) ;

ShowWindow (hwnd, iCmdShow) ;

UpdateWindow (hwnd) ; 

      //создание таймера

      SetTimer(hwnd, TIMER_SEC, 10000, NULL); 

while (GetMessage (&msg, NULL, 0, 0))

{

TranslateMessage (&msg) ;

DispatchMessage (&msg) ;

}

return msg.wParam ;

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)

{ 

//определение идентификаторов button и edit

static HWND hButton_V_P;

static HWND hButton_Z_P;

static HWND hButton_O_S;

static HWND hButton_KILL;

static HWND hButton_TURN_OFF;

static HWND hButton_LOG_OFF;

static HWND hButton_REBOOT;

HBRUSH hBrush;

char chBuff[3];

Информация о работе Диспетчер задач. WinAPI