Системное программирование в операционных системах
Создание системы, осуществляющей запуск программы по расписанию, которое хранится в реестре. Методы и средства взаимодействия с аппаратными и программными средствами, типы интерфейсов. Алгоритм работы и листинг программы, проверка ее работоспособности.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.11.2009 |
Размер файла | 78,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4
Федеральное агентство по образованию и науке РФ
Пензенский государственный университет
Кафедра «Информационная безопасность
систем и технологий»
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту на тему:
«Системное программирование в операционных системах»
ПГУ 2.090105.001 ПЗ
Дисциплина: Безопасность операционных систем
Группа: _____________________
Разработал: __________________
Проект принят с оценкой: _________
Руководитель проекта: ___________
Пенза 2006
Реферат
Пояснительная записка содержит 18 с., 1 рис., 2 приложения.
ГРАФИЧЕСКИЙ ИНТЕРФЕЙС, ПРОГРАММА, Алгоритм, РЕЕСТР
Объектом исследования является графическая операционная система.
Целью работы является создание программы, осуществляющей запуск программы по расписанию, расписание хранится в реестре. Программа должна нормально функционировать в среде графической операционной системы.
В процессе работы была разработана программа, осуществляющая запуск программы по расписанию, расписание хранится в реестре, написанная на языке, предназначенном для программирования графической операционной системы. Разработанная программа обладает графическим интерфейсом.
В результате выполнения работы были получены навыки программирования для графической операционной системы.
Содержание
Введение
1 Интерфейс пользователя
2 Руководство пользователю
3 Проверка работоспособности программы
Заключение
Приложение А. Алгоритм работы программы
Приложение Б. Листинг программы
Введение
Операционная система в наибольшей степени определяет облик всей вычислительной системы в целом.
ОС ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый интерфейс, операционная система берет на себя все малоприятные дела, связанные с обработкой прерываний, управлением таймерами и оперативной памятью, а также другие низкоуровневые проблемы. В каждом случае та абстрактная, воображаемая машина, с которой, благодаря операционной системе, теперь может иметь дело пользователь, гораздо проще и удобнее в обращении, чем реальная аппаратура, лежащая в основе этой абстрактной машины. Также операционная система предоставляется пользователю некоторой расширенной или виртуальной машины, которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.
1. Интерфейс пользователя
Методы и средства взаимодействия с аппаратными и программными средствами называют пользовательским интерфейсом. Интерфейс взаимодействия с пользователем - важный элемент любой программы. Любая программа должна обладать пользовательским интерфейсом, иначе, кроме своего разработчика, она будет недоступна в понимании лицу с ней не знакомому. Кроме того, интерфейс должен быть дружественным. Как правило, популярность программных продуктов напрямую зависит от интерфейса. Программы, имеющие наиболее удобный интерфейс, всегда пользуются спросом.
Интерфейсы бывают различных типов. В данном курсовом проекте разработанная программа имеет графический интерфейс. Написанная программа внешне представляет из себя графическое приложение, графической операционной системы. При старте программы на дисплее появляется графическое окно. Никакой функциональной нагрузки это окно не несет, через него не предусмотрен ввод команд и параметров в программу. Это окно лишь обозначает работу программы. Разработанный интерфейс в полной мере соответствует функциональному назначению программы.
В первом блоке производится открытие раздела реестра, если он успешно открывается, то программа получает текущее время, если нет, то на экран выводиться сообщение “Cannot open registry key!”, это означает, что раздел реестра не может открыться. После этого проверяется счётчик строк. В данной программе предусмотрена возможность создания расписания для 30 программ. Если проверка выявит, что счётчик равен 0, то программа завершит своё выполнение. В противном случае произойдёт считывание строки. Если строка считана, и считанное время равно текущему, то производится запуск заданной расписанием программы
Алгоритм работы программы изображен на рисунке А.1 в приложении А.
2. Руководство пользователю
Перед тем как осуществлять запуск программы по расписанию необходимо создать список запускаемых программ с указанием времени запуска каждой из них. Эту информацию необходимо вводить в специальный файл с расширением reg. Ввод информации необходимо осуществлять в определенном формате. Пример строки из файла schedule.reg, отвечающей за запуск программы калькулятора в 14:09.
"1"="14:09 c:\\windows\\system32\\calc.exe"
Далее необходимо импортировать информацию из файла в реестр. Теперь можно запускать данную программу. Для этого необходимо запустить исполняемый файл list.exe в среде графической операционной системы любым из возможных способов.
3. Проверка работоспособности программы
Для наглядной проверки работоспособности программы сделаем расписание запуска следующих программ:
- calc.exe
- cmd.exe
- notepad.exe
Для этого необходимо занести данные в файл schedule:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\shedule]
"1"="14:09 c:\\windows\\system32\\calc.exe"
"2"="14:10 c:\\windows\\system32\\cmd.exe"
"3"="13:15 c:\\windows\\system32\\notepad.exe"
Затем необходимо импортировать эти данные в реестр.
После этого запускаем программу. На экране появляется окно с надписью “выполнение”, что свидетельствует о работе программы.
В период выполнения, программа проверяет расписание, которое хранится в реестре, и если находит там время совпадающее с текущим, то запускается соответствующая программа.
Заключение
В результате курсового проекта была разработана программа, которая позволяет осуществлять запуск программы по расписанию, которое хранится в реестре. Средством написания данной программы являлась интегрированная среда программирования, специально предназначенная для программирования графической операционной системы. Разработанная программа обладает графическим интерфейсом.
В итоге, задание на курсовой проект было выполнено в полном объеме.
Приложение А
(ОБЯЗАТЕЛЬНОЕ)
Алгоритм работы программы
Рисунок 1- Алгоритм работы программы
Приложение Б
(ОБЯЗАТЕЛЬНОЕ)
Листинг программы
// list.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "windows.h"
#include "stdlib.h"
#include "winioctl.h"
#include "shellapi.h"
// функция проверки расписания в реестре
void CheckShedule(void);
char shed[30][3];
// оконная функция
LRESULT CALLBACK WindowProc(HWND hWnd,
UINT message,
WPARAM wParam,
LPARAM lParam);
// основная функция
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// создание и заполнение структуры окна
WNDCLASS wcl;
wcl.style=CS_HREDRAW|CS_VREDRAW;
wcl.lpfnWndProc=WindowProc;
wcl.cbClsExtra=0;
wcl.cbWndExtra=DLGWINDOWEXTRA;
wcl.hInstance=hInstance;
wcl.hIcon=LoadIcon(NULL, IDI_APPLICATION);
wcl.hCursor=LoadCursor(NULL, IDC_ARROW);
wcl.hbrBackground=(HBRUSH)(COLOR_BTNFACE+1);
wcl.lpszMenuName=NULL;
wcl.lpszClassName="WWW";
strcpy(shed[0], "1");
strcpy(shed[1], "2");
strcpy(shed[2], "3");
strcpy(shed[3], "4");
strcpy(shed[4], "5");
strcpy(shed[5], "6");
strcpy(shed[6], "7");
strcpy(shed[7], "8");
strcpy(shed[8], "9");
strcpy(shed[9], "10");
strcpy(shed[10], "11");
strcpy(shed[11], "12");
strcpy(shed[12], "13");
strcpy(shed[13], "14");
strcpy(shed[14], "15");
strcpy(shed[15], "16");
strcpy(shed[16], "17");
strcpy(shed[17], "18");
strcpy(shed[18], "19");
strcpy(shed[19], "20");
strcpy(shed[20], "21");
strcpy(shed[21], "22");
strcpy(shed[22], "23");
strcpy(shed[23], "24");
strcpy(shed[24], "25");
strcpy(shed[25], "26");
strcpy(shed[26], "27");
strcpy(shed[27], "28");
strcpy(shed[28], "29");
strcpy(shed[29], "30");
// регистрация класса окна
if (!RegisterClass(&wcl)) return 0;
// создание диалогового окна
HWND hWnd=CreateDialogParam(hInstance,"TESTWIN",NULL,NULL,NULL);
// прорисовка окна
ShowWindow(hWnd, nCmdShow);
// обновление окна
UpdateWindow(hWnd);
// установка таймера
SetTimer(hWnd, 1, 60000, NULL);
// цикл обработки сообщений
MSG lpMsg;
while (GetMessage(&lpMsg, NULL, 0 ,0))
{
TranslateMessage(&lpMsg);
DispatchMessage(&lpMsg);
}
return lpMsg.wParam;
}
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch(message)
{
case WM_DESTROY: PostQuitMessage(0); break;
// если пришло сообщение от таймера, проверка расписания в реестре
case WM_TIMER:
CheckShedule();
break;
default: return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
void CheckShedule(void)
{
// объявление переменных
SYSTEMTIME time;
HKEY hOpen;
DWORD datatype, Buffsize;
long opRes;
char* szAlloc = "shedule\\";
char hour[3], minute[3], buff[1024];
hour[2] = minute[2] = 0;
// открытие раздела реестра
opRes = RegOpenKey(HKEY_CURRENT_USER,szAlloc,&hOpen);
// если не открылся, то сообщение и выход
if(opRes)
{
MessageBox(0, "Cannot open registry key!", "Error", MB_ICONSTOP);
return;
}
// получение текущего времени
GetLocalTime(&time);
for(int i = 0; i < 30; i++)
{
// чтение строки из реестра с временем и строкой запуска
if (RegQueryValueEx(hOpen,shed[i],NULL,&datatype,(BYTE*)buff,&Buffsize))
// если не прочитано, то переход к следующей
continue;
// считывание времени запуска
hour[0] = buff[0];
hour[1] = buff[1];
minute[0] = buff[3];
minute[1] = buff[4];
// если текущее время равно считанному из реестра
if((atoi(hour) == time.wHour) && (atoi(minute) == time.wMinute))
{
// запуск программы
ShellExecute(0,"open", &buff[6], NULL, NULL, SW_SHOWNORMAL);
}
// обнуление буфера
memset(buff, 0, sizeof(buff));
}
}
Подобные документы
Системный подход к программированию в операционных системах. Разработка программы, выполняющей запуск программ по расписанию. Понятие интерфейса и его назначение. Создание алгоритма и программы на его базе. Текст программы и руководство пользователя.
курсовая работа [581,0 K], добавлен 13.11.2009Описание основных функциональных блоков системы и выбор элементной базы. Схема электрическая принципиальная. Описание программы, алгоритм функционирования. Проверка работоспособности, листинг, моделирование. Функции работы с индикатором. Опрос клавиатуры.
курсовая работа [2,4 M], добавлен 21.03.2016Компьютерные программы, обеспечивающие управление аппаратными средствами компьютера. Операционные системы Microsoft Corporation. Прикладные программы, утилиты. Простейшие функции операционной системы. Линейка Microsoft Windows для домашнего использования.
презентация [947,8 K], добавлен 01.10.2012Разработка принципиальной схемы, выбор управляющего микроконтроллера. Общий алгоритм работы программы. Блок анализа и реализации команд, принятых от персонального компьютера. Описание используемых интерфейсов. Формат данных RS-232C, листинг программы.
курсовая работа [1,2 M], добавлен 26.12.2012Алгоритм работы программы, которая выполняет записи в log-файл действий, идентифицированных как попытки атаки на страницу авторизации пользователей условного ресурса. Макет веб-сайта, листинги файлов программы и процесс ее взаимодействия с СУБД MySQL.
курсовая работа [1,3 M], добавлен 22.06.2015Программирование игр с использованием визуальных компонентов. Описание операторов, используемых при практической реализации разработанной программы. Работа над созданием программы "Морской бой", постановка задачи, алгоритм реализации работы, блок-схема.
курсовая работа [175,9 K], добавлен 10.05.2010Характеристика программы на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит результаты на экран. Описание переменных в программе, ее блок-схема и алгоритм работы. Листинг программы. Описание входных данных и результат вычислений.
курсовая работа [721,4 K], добавлен 10.11.2010C++ как универсальный язык программирования, его сущность, назначение, классы и возможности. Блок-схема и листинг программы KURS.EXE, ее принцип работы, системные требования, возможные неполадки и способы их устранения. Листинг заставки VOVA777.EXE.
курсовая работа [422,3 K], добавлен 31.05.2010Создание на языке C базы данных "Стадионы города", требования к программе. Осуществление загрузки базы данных в массив и вывод главного меню в основной программе. Алгоритм работы программы в виде блок-схемы. Описание функций программы и ее листинг.
курсовая работа [183,6 K], добавлен 06.10.2010Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.
курсовая работа [357,1 K], добавлен 28.02.2011