Резидентная программа для Windows

Автор: Пользователь скрыл имя, 20 Декабря 2011 в 03:03, курсовая работа

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

В данной курсовой работе рассмотрена программа-резидент, остающаяся в памяти после закрытия окна программы и обозначающая свое присутствие значком в трее.
Цель работы состоит в разработке программы-резидента, делающей снимок экрана с заданной периодичностью и сохраняющая файлы в выбранной папке.

Содержание

Введение 5
1. Постановка задачи и ее решение 6
1.1. Формулировка задачи 6
1.2 Спецификация задачи 6
2 Техническая реализация алгоритма решения 6
2.1 Выбор языка и среды программирования 6
2.2 Описание алгоритмов и программы 6
2.3 Описание методов программирования 8
3 Тестирование программы 11
Заключение 13
Список литературы 14
Приложение А. Листинг программы 15

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

Пояснительная записка.docx

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

Реферат

 

Пояснительная  записка  курсовой  работы  содержит  _16_  страниц,              _8_  рисунков,_4_ источника, _1_ приложение.

 

Ключевые  слова:  ПРОГРАММА,  РЕЗИДЕНТ, ТРЕЙ, СКРИНШОТ, ПУТЬ К ПАПКЕ, ТАЙМЕР 

 

 

       В данной курсовой работе рассмотрена программа-резидент, остающаяся в памяти после закрытия окна программы и обозначающая свое присутствие значком в трее.

       Цель  работы состоит в разработке программы-резидента, делающей снимок экрана с заданной периодичностью и сохраняющая файлы в выбранной папке. 
 
 
 
 
 
 
 
 
 
 
 
 
 

Оглавление

Введение 5

1. Постановка задачи и ее решение 6

1.1. Формулировка задачи 6

1.2 Спецификация задачи 6

2 Техническая реализация алгоритма решения 6

2.1 Выбор языка и среды программирования 6

2.2 Описание алгоритмов и программы 6

2.3 Описание методов программирования 8

3 Тестирование программы 11

Заключение 13

Список  литературы 14

Приложение  А. Листинг программы 15 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Введение

       Системное программное обеспечение — это комплекс программ, которые обеспечивают эффективное управление компонентами компьютерной системы, такими как процессор, оперативная память, устройства ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс», с одной стороны которого аппаратура, а с другой - приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные прикладные задачи, а лишь обеспечивает работу других программ, управляет аппаратными ресурсами вычислительной системы и т.д.

       Резидентная программа (или TSR-программа, от англ. Terminate and Stay Resident — «завершиться и остаться резидентной») — в операционной системе MS-DOS программа, вернувшая управление оболочке операционной системы (command.com), либо надстройке над операционной системой (Norton Commander и т. п.), но оставшаяся в оперативной памяти персонального компьютера. Резидентная программа активизируется каждый раз при возникновении прерывания, вектор которого эта программа изменила на адрес одной из своих процедур.

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

       По  способу инициализации и вызова операционной системой резидентные  программы необходимо отличать от «настоящих» драйверов MS-DOS, встраиваемых операционной системой в своё ядро во время загрузки. В эпоху многозадачных ОС резидентными иногда называют программы, загруженные постоянно и работающие в фоновом режиме. 
 
 
 

  1. Постановка  задачи и ее решение
    1. Формулировка  задачи

       Разработать программу, работающую в фоновом  режиме. Программа должна оставаться в памяти после закрытия главного окна и обозначать свое присутствие  значком в системном трее. Также  программа должна с заданной периодичностью делать снимки экрана и сохранять  их в выбранную пользователем  папку.

    1.   Спецификация задачи

       Входные данные:

       - периодичность в секундах;

       - папка для сохранения скриншотов.

       Выходные  данные:

       -скриншоты

       - иконка с системном трее

  1. Техническая реализация алгоритма  решения
    1. Выбор языка и среды  программирования

         Языком  программирования  был  выбран  C#,  поскольку он  позволяет решать  широкий спектр  задач, легок в использовании,  обладает  гибкостью и большим количеством удобных в использовании библиотек. Помимо этого он позволяет использовать как объектно-ориентированный, так и структурный подход.

       В  качестве  среды  разработки  была  выбрана  IDE  Visual  Studio  2010 Express  Edition,  поскольку она обладает  удобным интерфейсом,  богатыми средствами  для отладки,  широко  распространена  и бесплатна для некоммерческого использования.

    1. Описание  алгоритмов и программы

       При запуске программы в системном  трее появляется значок. Таймер автоматически не запускается, программа находится в режиме ожидания. Контекстное меню открывается нажатием правой кнопкой мыши по иконке. Меню состоит из следующих пунктов:

  • «Настройка» - открывается главное окно программы, в котором можно задать интервал таймера, выбрать папку для сохранения скриншотов, свернуть окно и закрыть программу;
    • «Свернуть» - при выборе этого пункта меню сворачивается в трей главное окно программы;
    • «Запустить» - запускается таймер, с заданной периодичностью программа делает снимки экрана и сохраняет в выбранную папку. По умолчанию интервал таймера – 5 секунд, а папка сохранения – диск C. В режиме работы таймера нельзя изменить периодичность сохранения скриншотов.
    • «Остановить» - остановка таймера, режим ожидания. В этом режиме можно изменить интервал таймера.
    • «Выход» - полное закрытие программы
 

Рисунок 1- Диаграмма состояний и переходов  
 
 
 

    1. Описание  методов программирования

       Код формы, создание иконки в трее.

public Form1()

        {

            notifyIcon.Icon = new Icon(ICON_FILE_NAME);

            notifyIcon.ContextMenu = CreateMenu();

            notifyIcon.Visible = true;

            InitializeComponent();

        } 

       Код создания и настройки контекстного меню, запуск и остановка таймера.

ContextMenu CreateMenu()

        {

            ContextMenu menu = new ContextMenu(new MenuItem[]{

                new MenuItem(ITEM_SHOW_WINDOW),

                new MenuItem(ITEM_HIDE_WINDOW),

                new MenuItem(ITEM_ACTION),

                new MenuItem(ITEM_STOP),

                new MenuItem(ITEM_EXIT_APPLICATION)});

                menu.MenuItems[1].Enabled = false;

                menu.MenuItems[3].Enabled = false;

                foreach (MenuItem menuItem in menu.MenuItems)

                menuItem.Click += new EventHandler(OnMenuItemClick);

                return menu;

        }

        //Делаем доступным пункт Hide, а пункт Show - запрещаем

        protected override void OnLoad(EventArgs e)

        {

            notifyIcon.ContextMenu.MenuItems[0].Enabled = false;

            notifyIcon.ContextMenu.MenuItems[1].Enabled = true;

        } 

        //Делаем доступным пункт Show, а пункт Hide - запрещаем

        protected override void OnClosed(EventArgs e)

        {

            notifyIcon.ContextMenu.MenuItems[0].Enabled = true;

            notifyIcon.ContextMenu.MenuItems[1].Enabled = false;

        }

        //Анализируем какой MenuItem clik'нули и выполняем соответствующее действие

        void OnMenuItemClick(object sender, EventArgs e)

Информация о работе Резидентная программа для Windows