Резидентная программа для 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 Кб (Скачать)

            timer1.Interval = inter;

            timer1.Enabled = true;

        } 

        ContextMenu CreateMenu()

        {

            ContextMenu menu = new ContextMenu(new MenuItem[]{

                new MenuItem(ITEM_SHOW_WINDOW),

                new MenuItem(ITEM_HIDE_WINDOW),

                new MenuItem(ITEM_EXIT_APPLICATION)});

                menu.MenuItems[1].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)

        {

            MenuItem menuItem = sender as MenuItem;

            switch (menuItem.Text)

            {

                case ITEM_SHOW_WINDOW:

                    ShowDialog();

                    break;

                case ITEM_HIDE_WINDOW:

                    Close();

                    break;

                case ITEM_EXIT_APPLICATION:

                    //Убираем иконку из system tray

                    notifyIcon.Visible = false;

                    //Завершаем приложения

                    Application.Exit();

                    break;

            }

        }

        private Bitmap TakeScreenShot(Screen currentScreen)

        {

            Bitmap bmpScreenShot = new Bitmap(currentScreen.Bounds.Width,

                                              currentScreen.Bounds.Height,

                                              PixelFormat.Format32bppArgb); 

            Graphics gScreenShot = Graphics.FromImage(bmpScreenShot); 

            gScreenShot.CopyFromScreen(currentScreen.Bounds.X,

                                       currentScreen.Bounds.Y,

                                       0, 0,

                                       currentScreen.Bounds.Size,

                                       CopyPixelOperation.SourceCopy);

            return bmpScreenShot;

        }

        public string S = "";

        public int i = 0;

        public string Ss = ""; 

        private void timer1_Tick_1(object sender, EventArgs e)

        {

           

            Screen scr = Screen.PrimaryScreen;

            Image img = TakeScreenShot(scr);

            img.Save(@""+S+"\\screen" + i + ".jpg", ImageFormat.Jpeg);

            i++;

           

        }

        private void button1_Click(object sender, EventArgs e)

        {

            Close();

        }

       

        private void button2_Click(object sender, EventArgs e)

        {

            //Убираем иконку из system tray

            notifyIcon.Visible = false;

            //Завершаем приложения

            Application.Exit();

        } 

        private void button3_Click(object sender, EventArgs e)

        {

            if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)

            {

                textBox2.Text = folderBrowserDialog1.SelectedPath;

            }

            S = textBox2.Text; 

        }

     

    }

}

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