Твик ОС Windows

Автор: Пользователь скрыл имя, 15 Января 2013 в 08:59, курсовая работа

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

Целью работы является создание именно такого программного средства. Отличительная черта от многих уже cуществующих решений - наличие готовых настроек системы под определенного пользователя. Одним нажатием мыши система перенастроится под нужную конфигурацию и при необходимости также быстро вернется в первоначальное состояние. Таким образом пользователи полчат уникальный инструмент позволяющий быстро и безопасно перенастраивать Windows Xp.

Содержание

СОКРАЩЕНИЯ 3
ВВЕДЕНИЕ 4
1. АНАЛИЗ ЗАДАЧИ 5
1.1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ 5
1.2 ВЫДЕЛЕНИЕ КЛЮЧЕВЫХ АБСТРАКЦИЙ 7
1.3 ИНСТРУМЕНТЫ РЕАЛИЗАЦИИ ЗАДАЧИ 8
1.4 ОБЗОР СУЩЕСТВУЮЩИХ РЕШЕНИЙ 11
2. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОЕКТИРОВАНИЕ 12
2.1 ОПИСАНИЕ КЛАССОВ 12
2.2 ИЕРАРХИЯ КЛАССОВ 13
3. ОПИСАНИЕ ПРОГРАММЫ 14
3.1 ФИЗИЧЕСКАЯ СТРУКТУРА И КРИТЕРИИ ОБЪЕДИНЕНИЯ КЛАССОВ В МОДУЛИ 14
3.2 ВЗАИМОДЕЙСТВИЕ МОДУЛЕЙ, КЛАССОВ, СПОСОБЫ ОБРАЩЕНИЯ 15
4. ТЕСТИРОВАНИЕ 16
4.1 АНАЛИЗ НАДЕЖНОСТИ 16
4.2 ТЕСТОВЫЕ ПРИМЕРЫ 17
4.3 РЕАКЦИЯ ПРОГРАММЫ НА ТЕСТЫ 22
4.4 АНАЛИЗ ОЖИДАЕМЫХ И ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ 23
4.5 ВЫВОД ПО РЕЗУЛЬТАТАМ ТЕСТИРОВАНИЯ 24
5. ПРИМЕНЕНИЕ ПРОГРАММЫ 25
5.1 НАЗНАЧЕНИЕ ПРОГРАММЫ 25
5.2 ОБЛАСТЬ ПРИМЕНЕНИЯ 27
5.3 АППАРАТНО-ПРОГРАММНЫЙ КОМПЛЕКС ДЛЯ НОРМАЛЬНОГО ФУНКЦИОНИРОВАНИЯ ПРОГРАММЫ 28
5.4 ИНСТАЛЛЯЦИЯ ПРОГРАММЫ 29
5.5 ФОРМЫ ПРЕДСТАВЛЕНИЯ ВЫХОДНЫХ ДАННЫХ 30
6. ОХРАНА ТРУДА 31
6.1 ОБЩИЕ ТРЕБОВАНИЯ БЕЗОПАСНОСТИ 31
6.2 ТРЕБОВАНИЯ БЕЗОПАСНОСТИ ПЕРЕД НАЧАЛОМ РАБОТЫ 34
6.3 ТРЕБОВАНИЯ БЕЗОПАСНОСТИ ПРИ ВЫПОЛНЕНИИ РАБОТЫ 35
6.4 ТРЕБОВАНИЯ БЕЗОПАСНОСТИ В АВАРИЙНЫХ СИТУАЦИЯХ 37
6.5 ТРЕБОВАНИЯ БЕЗОПАСНОСТИ ПО ОКОНЧАНИИ РАБОТЫ 38
7. ЭКОНОМИЧЕСКИЙ РАЗДЕЛ 39
7.1 РАСЧЕТ ПОЛНОЙ СЕБЕСТОИМОСТИ ПРОГРАММНОГО СРЕДСТВА АДМИНИСТРИРОВАНИЯ И НАСТРОЙКИ ОПЕРАЦИОННОЙ СИСТЕМЫ WINDOWS XP 39
7.2 ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЦЕЛЕСООБРАЗНОСТИ ПРОВЕДЕНИЯ МЕРОПРИЯТИЯ 43
7.3 РАСЧЕТ КАПИТАЛЬНЫХ ЗАТРАТ 44
7.5 ТЕХНИКО - ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ. ВЫВОДЫ ПО РАСЧЕТАМ. 47
ЗАКЛЮЧЕНИЕ 48
Список используемых источников 49
ПРИЛОЖЕНИЯ А 50

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

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

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

                RegKey.Close();

                runTable.Rows.Clear();

                toolStripButton1_Click(null, null);

 

            }

            else

                if (Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[1].Value) == "HKLM:RunOnce")

                {

                    RegistryKey RegKey = Registry.LocalMachine.OpenSubKey

                    ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnce", true);

                    RegKey.DeleteValue(Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[2].Value));

                    RegKey.Close();

                    runTable.Rows.Clear();

                    toolStripButton2_Click(null, null);

                }

                else

                    if (Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[1].Value) == "HKLM:RunOnceEx")

                    {

                        RegistryKey RegKey = Registry.LocalMachine.OpenSubKey

                        ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\RunOnceEx", true);

                        RegKey.DeleteValue(Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[2].Value));

                        RegKey.Close();

                        runTable.Rows.Clear();

                        toolStripButton3_Click(null, null);

                    }

                    else

                        if (Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[1].Value) == "HCU:Run")

                        {

                            RegistryKey RegKey = Registry.CurrentUser.OpenSubKey

                                ("Software\\Microsoft\\Windows\\CurrentVersion\\Run", true);

                            RegKey.DeleteValue(Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[2].Value));

                            RegKey.Close();

                            runTable.Rows.Clear();

                            toolStripButton4_Click(null, null);

                        }

                        else

                            if (Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[1].Value) == "HCU:RunOnce")

                            {

                                RegistryKey RegKey = Registry.CurrentUser.OpenSubKey

                                    ("Software\\Microsoft\\Windows\\CurrentVersion\\RunOnce", true);

                                RegKey.DeleteValue(Convert.ToString(runTable.Rows[runTable.CurrentCell.RowIndex].Cells[2].Value));

                                RegKey.Close();

                                runTable.Rows.Clear();

                                toolStripButton5_Click(null, null);

                            }

            }

            catch

            {

               

            }

        }

        //Добавление программ в автозагрузку

        private void toolStripButton9_Click(object sender, EventArgs e)

        {

            addRunForm form = new addRunForm();

            form.Show();

        }

        //Изменение размеров таблицы

        private void panel1_SizeChanged(object sender, EventArgs e)

        {

            runTable.Columns[3].Width = runTable.Width - 260;

        }

      

 

        //Применить

        private void buttonOk_Click(object sender, EventArgs e)

        {

            try

            {

                if (flagM)

                {

                    flagM = false;

                switch (menuFlag)

                {

                    case 0:

                        PerfClass prf = new PerfClass();//Производительность

                        for (int m = 0; m < 19; m++)

                        {

                            if (checkedListBox1.GetItemChecked(m) == true)//Определяет какие ключи как переписать

                            {

                                prf.writepr[m] = 1; //Включает значение

                            }

                            else prf.writepr[m] = 0; //Выключает значение

                        }

                        prf.writeperf(); //Переписывает ключи реестра

                        break;

 

                    case 1:

                        VisClass vS = new VisClass();

                        for (int i = 0; i < 44; i++)

                        {

                            if (checkedListBox1.GetItemChecked(i) == true)//Определяет какие ключи как переписать

                            {

                                vS.writevis[i] = 1; //Включает значение

                            }

                            else vS.writevis[i] = 0; //Выключает значение

                        }

                        vS.writevisual();

                        break;

                    case 3:

                        CnClass wr;

                        if (radioButton1.Checked) wr = new CnClass(0);

                        if (radioButton2.Checked) wr = new CnClass(1);

                        if (radioButton3.Checked) wr = new CnClass(2);

                        if (radioButton4.Checked) wr = new CnClass(3);

                        break;

                }

              

                    DialogResult result = MessageBox.Show("Для вступления изменений в силу необходимо презагрузить компьютер. Выполнить это сейчас?", "Внимание", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);

                    if (result == DialogResult.Yes)

                        RestartOrShotDown(WinAPIClass.ShutdownType.Reboot);

                }

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

            }

        }

        //Отмена

        private void buttonCancel_Click(object sender, EventArgs e)

        {

            flagM = false;

        }

        //Выход

        private void buttonExit_Click(object sender, EventArgs e)

        {

            Close();

        }

 

        //Конфигурации готовых настроек

        private void radioButton1_CheckedChanged(object sender, EventArgs e)

        {

            flagM = true;

        }

        //Restart

        private void RestartOrShotDown(WinAPIClass.ShutdownType type)//Перезагрузка ПК

        {

            WinAPIClass.TokPriv1Luid tp;

            IntPtr hproc = WinAPIClass.GetCurrentProcess();

            IntPtr hToken = IntPtr.Zero;

            WinAPIClass.OpenProcessToken(hproc, WinAPIClass.TOKEN_ADJUST_PRIVILEGES | WinAPIClass.TOKEN_QUERY, ref hToken);

            tp.Count = 1;

            tp.Luid = 0;

            tp.Attr = WinAPIClass.SE_PRIVILEGE_ENABLED;

            WinAPIClass.LookupPrivilegeValue(null, WinAPIClass.SE_SHUTDOWN_NAME, ref tp.Luid);

            WinAPIClass.AdjustTokenPrivileges(hToken, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);

            WinAPIClass.ExitWindowsEx((uint)type, "Win Api test");

        }

        //Данные о процессоре

        private void cpu()

        {

            ManagementClass processClass = new ManagementClass("Win32_Processor");

            foreach (ManagementObject o in processClass.GetInstances())

            {

                label2.Text = Convert.ToString(o["Name"]);

                //label2.Text = Convert.ToString(o["Description"]);

            }

        }

        //Название и версия прдукта

        private void inf()

        {

            label1.Text = Application.ProductName;

            this.Text = Application.ProductName + " v" + Application.ProductVersion;

            label3.Text = Application.CompanyName;

        }

 

 

        //Диспетчер задач

        //Изменение размеров таблицы

        private void gridProcess_SizeChanged(object sender, EventArgs e)

        {

            gridProcess.Columns[4].Width = gridProcess.Width - 390;

        }     

        //Заполнение таблицы

        private void process()

        {

            gridProcess.Rows.Clear();

            Process[] pr = Process.GetProcesses();

       

            try

            {

                pr = Process.GetProcesses(".");

            }

            catch (Exception ex)

            {

                MessageBox.Show(ex.Message);

                Application.Exit();

                return;

            }

 

            foreach (Process p in pr)

            {

                try

                {

                    string[] proc = new string[] { p.ProcessName,p.Id.ToString(), p.StartTime.ToString(), p.TotalProcessorTime.Duration().Hours.ToString() + ":" + p.TotalProcessorTime.Duration().Minutes.ToString() + ":" + p.TotalProcessorTime.Duration().Seconds.ToString(), (p.WorkingSet / 1024).ToString() + "k" };

                    gridProcess.Rows.Add(proc);

                }

                catch { }

            }

 

        }

        //Завершить процесс

        private void toolStripButton18_Click(object sender, EventArgs e)

        {

            try

            {

                Process.GetProcessById(Convert.ToInt16(gridProcess.Rows[gridProcess.CurrentCell.RowIndex].Cells[1].Value)).Kill();

            }

            catch

            { }

 

            process();

        }

        //Стартовать новый процесс

        private void toolStripButton17_Click(object sender, EventArgs e)

        {

            addNewProcess newPr = new addNewProcess();

            newPr.Show();

        }

        //О программе

        private void button1_Click(object sender, EventArgs e)

        {

            aboutForm aF = new aboutForm();

            aF.Show();

        }

        //разрешение на изменение настроек

        private void checkedListBox1_Click(object sender, EventArgs e)

        {

            flagM = true;

        }

 

 

        //Родительский контроль

        //Чтение значений

        private void readParentCh()

        {

            closeRes closeR = new closeRes();

          

            int a = closeR.DorR();

            switch (a)

            {

                case 1:

                    radioButton5.Checked = true;

                    break;

                case 2:

                    radioButton6.Checked = true;

                    break;

                default:

                    radioButton5.Checked = false;

                    radioButton6.Checked = false;

                    listBox1.Items.Add("Ограничения отсутствуют");

                    break;

            }

            listBox1.Items.Clear();

            for (int i = 0; i < closeR.name.Length; i++)

            {

                listBox1.Items.Add(closeR.name[i]);

            }

           

           

        }

        //Запись значений

        private void toolStripButton29_Click(object sender, EventArgs e)

        {

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

            {

                int f = 1;

                if (radioButton5.Checked)

                    f = 1;

                if (radioButton6.Checked)

                    f = 2;

 

                closeRes cl = new closeRes(openFileDialog1.SafeFileName, f);

                readParentCh();

            }

        }

        //Удаление значений

        private void toolStripButton30_Click(object sender, EventArgs e)

        {

          

            closeRes clR = new closeRes();

            int f=1;

 

            if (radioButton5.Checked)

                  f = 1;

            if (radioButton6.Checked)

                f = 2;

            try

            {

                clR.del(listBox1.Items[listBox1.SelectedIndex].ToString(), f);

                readParentCh();

            }

            catch

            { }

 

 

        }

        //Смена каталога

        private void radioButton5_CheckedChanged(object sender, EventArgs e)

        {

            listBox1.Items.Clear();

 

            int f = 1;

 

            if (radioButton5.Checked)

                f = 1;

            if (radioButton6.Checked)

                f = 2;

 

            closeRes closeR = new closeRes(f);

            for (int i = 0; i < closeR.name.Length; i++)

            {

                listBox1.Items.Add(closeR.name[i]);

            }

        }

 

      

    }

}

 

 

 

 

 

 

 

 


Информация о работе Твик ОС Windows