Разработка программного обеспечения удаленного администрирования и управления локальной вычислительной сетью

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    844,71 Кб
  • Опубликовано:
    2013-10-22
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программного обеспечения удаленного администрирования и управления локальной вычислительной сетью

Содержание

программный утилита моделирование

Введение

. Анализ предметной области

.1 Цель разработки

.2 Область применения

.3 Обоснование выбора технологии и программных средств для разработки утилиты

.4 Определения, термины и сокращения

. Детальные требования

.1 Требования к функциональным характеристикам

.2 Нефункциональные требования

.3 Пользовательские интерфейсы

.4 Аппаратные интерфейсы

.5 Программные интерфейсы

.6 Требования к реализации

. Специальная часть

.1 Моделирование предметной области

.2 Спецификация вариантов использования

.3 Моделирование динамических аспектов системы

.4 Статический вид системы

. Тестирование

. Обоснование экономической эффективности проекта

.1 Выбор и обоснование методики расчета экономической эффективности

.2 Расчет показателей экономической эффективности проекта

.3 Расчет экономии затрат от внедрения разработанной программы

.4 Вывод

Заключение

Список использованной литературы

Приложение

Введение

В настоящее время ни одна организация или предприятие не обходится без использования сетевых технологий.

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

Выгода и польза удаленного администрирования очевидна:

- исключается необходимость вызова IT-персонала при возникновении неполадок;

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

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

Существует определенный объем задач, для оперативного выполнения которых необходимо соединение всех компьютеров единой локальной сетью. Этот "организм" должен функционировать очень четко.

В ходе администрирования сети возникает необходимость удаленного управления всеми компьютерами этой сети.

Удаленное управление включает в себя:

-  подключение к удаленному компьютеру;

-       управление приложениями и процессами удаленного компьютера;

-       управление устройствами удаленного компьютера;

-       получение полной системной информации об удаленном компьютере;

-       учет сетевого трафика;

-       использование учетных записей и иерархии active directory;

-       обеспечение безопасности и целостности передаваемой по сети информации путем шифрования;

-       визуальное управление удаленным компьютером.

Целью дипломной работы является разработка программного обеспечения для администрирования корпоративной сети. ПО выполнено с использованием технологии «клиент-сервер» с, так называемым, «толстым клиентом», на базе которой создана утилита для удаленного администрирования.

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

Во второй главе описаны пользовательский, аппаратный и программные интерфейсы, а также функциональные и нефункциональные требования.

В третьей главе речь идет об этапах моделирования области применения и проектировании всей системы в целом.

Четвертая глава посвящена тестированию утилиты на заявленный функционал. В частности рассматривается контрольный пример вызова основных функций приложения.

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

1       . Анализ предметной области

1.1 Цель разработки


Цель данной работы заключается в исследовании технологий и архитектуры «клиент-сервер» и создании на их базе утилиты для удаленного администрирования.

Работа имеет следующие ключевые цели:

а) исследование проблемы администрирования локальных сетей;

б)      исследование возможностей технологии «клиент-сервер»;

в)      проектирование приложения, обеспечивающего функционал для удаленного администрирования;

г)       написание программы для удаленного администрирования;

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

Для этих целей уже существует множество решений. Но, большинство этих решений, являются платными и, при удаленном управлении, могут быть использованы в качестве вирусов-троянов. Примеры таких программ: Radmin, Remote Manipulator System, Team Viewer и др. Все эти программы разные, но принцип работы везде один:

-  узнать DNS имя или IP-адрес удаленного компьютера;

-       используя remote procedure call или сокетное соединение установить связь;

-       получить возможность управления устройствами и приложениями удаленного компьютера.

Переход организации к использованию разрабатываемого в ходе дипломного проектирования приложения Remote Administration Tools позволяет сэкономить на покупке лицензионного программного обеспечения.

Преимущества использования Remote Administration Tools:

-  приложение полностью бесплатно;

-       постоянное совершенствование решения;

-       возможность изменения эргономики и дизайна по требованию пользователя.

Приложение состоит из двух частей - клиентской (управляющей) и серверной (управляемой).

Полное наименование приложения - Remote Administration Tools.

Краткое наименование приложения - RAT.

1.2 Область применения


Утилита Remote Administration Tools - одна из многих утилит на рынке программного обеспечения, позволяющая в короткие сроки подключиться к удаленным компьютерам и произвести на расстоянии действия по администрированию одновременно нескольких рабочих станций.

Работа приложения построена на базе клиент-серверной технологии и подразумевает наличие хотя бы одного сервера (управляемый компьютер) и одного «толстого клиента» (управляющий компьютер).

Область применения данной технологии включает:

а) установление постоянного соединения между клиентской и серверной машинами;

б)      использование ресурсов сервера для проведения вычислительных операций;

в)      обеспечение надежности при обмене сообщениями между клиентом и сервером;

г)       возможность управления процессами серверного компьютера через удаленный клиентский компьютер;

д)      возможность управления устройствами серверного компьютера через удаленный клиентский компьютер;

е)       возможность визуального управления над серверным компьютером через удаленный клиентский компьютер.

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

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

Во-вторых, как правило, люди постоянно работают с двумя компьютерами - домашним и рабочим. Программы для удаленного администрирования позволяют через Интернет следить за тем, что происходит на другом компьютере, поэтому, сидя дома, можно контролировать компьютер на рабочем месте.

Одним словом, программа для удаленного администрирования просто необходима каждому, в чьем распоряжении находится более одного компьютера.

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

Для того чтобы клиент работал, на удаленном ПК обязательно должна быть запущена серверная часть, поэтому при установке на удаленном ПК программу лучше сразу поместить в "Автозагрузку".

Кроме этого, если на компьютерах используется брандмауэр, нужно обязательно создать правило, разрешающее работу с приложениями для удаленного администрирования, иначе брандмауэр может решить, что подключение к ПК - это атака извне и не допустить подключения. administrator (Radmin):

-  поддерживаемые ос: windows 9x/nt/2k/xp/2k3/vista;

-       условия распространения: shareware;

-    официальный сайт: www.radmin.com.

Radmin - программа для удаленного администрирования компьютеров, работающих под управлением Windows. Используя Radmin, вы можете с помощью обычного графического интерфейса одновременно и полноценно администрировать несколько удаленных компьютеров.

Безопасность:

-  интеграция с системой безопасности windows. radmin полностью поддерживает ntlmv2, active directory, Kerberos;

-       безопасная передача трафика. все передаваемые данные шифруются по стандарту aes;

-       собственная система безопасности. radmin позволяет создавать собственные учетные записи, наделяя их определенными правами;

-       фильтрация ip-адресов клиентов. для повышения безопасности можно давать разрешение для подключения к серверу клиентов только с определенных хостов;

-       ведение логов. В лог попадает имя подключившегося пользователя и его ip-адрес;

-       защита от угадывания пароля. radmin позволяет пресечь подбор пароля, устанавливая блокировки после нескольких попыток неправильного ввода.

Ключевые возможности:

-  передача файлов на удаленный ПК;

-       получение вида удаленного рабочего стола;

-       поддержка нескольких одновременных соединений;

-       telnet-сервер.

Умеренные требования к ресурсам системы, высокая безопасность и широкие возможности делают Radmin отличным инструментом для использования в корпоративной среде.NT Utilities:

-  поддерживаемые ос: windows nt/2k/xp/2k3/vista;

-       условия распространения: shareware;

-  официальный сайт: www.dameware.ru.

DameWare NT Utilitiest - находка для любого системного администратора. Используя этот «чемоданчик» инструментов, можно забыть о большинстве решений, которые предоставляет стандартная консоль MMC.

Безопасность:

-  шифрование трафика на основе crypto api;

-       возможность аутентификации по смарт-карте;

-       поддержка системы безопасности серверных версий windows, интеграция с activedirectory;

-       собственная система безопасности;

-       ограничение подключения по IP-адресам.

Ключевые возможности:

-  мощный браузер объектов ActiveDirectory. С помощью данной функции можно легко и быстро управлять такими объектами AD как Organizational Units, Контейнеры, Пользователи, Группы, Контакты, Компьютеры, Общие ресурсы и т.д. Причем управлять объектами AD с помощью DNTU гораздо удобнее, чем с помощью стандартных средств;

-       большое количество встроенных утилит для управления различными ресурсами удаленного пк: службы, диски, процессы, реестр, принтеры и т.д.;

-       telnet-сервер;

-       встроенные tcp-утилиты: ping, traceroute, mx test и другие;

-       удаленный вид рабочего стола.NT Utilities возможностей для администрирования предоставляет гораздо больше, чем Radmin, но относительно безопасности ему проигрывает. DNTU лучше использовать внутри локальной сети, а для администрирования удаленных офисов стоит использовать VPN.VNC:

-  поддерживаемые ос - windows 2000/xp/2003/vista, linux;

-       условия распространения gpl;

-       официальный сайт - www.tightvnc.com.VNC - одна из немногих программ для удаленного администрирования, которая распространяется бесплатно и имеет версии как под Unix-like системы, так и Windows. Хоть ее функционал не так богат, это хорошая находка для администраторов, которым приходится одновременно администрировать Windows/Unix серверы.

Безопасность: собственная система безопасности.

Возможности:

-  удаленный вид рабочего стола;

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

Программа не предъявляет жестких требований к аппаратному и программному обеспечению, поддерживает современные операционные системы Windows Vista и 2008 Server.

Поработав некоторое время с программой, Вы сами почувствуете все преимущества ROM, помогающие сделать Вашу работу удобной и комфортной.

Основные возможности:

-  высочайшая производительность, как в локальной, так и в медленных сетях;

-  полная совместимость с Windows Vista;

-       широкий спектр режимов работы программы - передача файлов, удаленный диспетчер задач, wake on LAN и многое другое;

-       удаленная установка. доступно несколько видов удаленной установки, в т.ч. в домене, с использванием групповой политики безопасности и msi;

-       безопасность. все данные шифруются с использованием современных технологий и протоколов обмена ключами (rsa с 2048 битным ключом обмена и aes с 256 битным сеансовым ключом);

-       возможность настроить программу на работу в условиях сложной топологии сети, благодаря таким функциям, как «соединение через» и «обратное соединение»;

-       поддержка нескольких соединений;

-       бесплатная техническая поддержка [1].

В таблице 1 отображены сравнительные характеристики рассмотренных программ для удаленного администрирования.

Таблица 1

Сравнительные характеристики программ удаленного администрирования

Параметр

Radmin

DameWare NT Utilities

Tight VNC

Шифрование данных

+(AES)

+(CryptoAPI)

+

Поддержка Vista (32 bit)

+

+

+

Поддержка Vista (64 bit)

-

+

-

Интеграция с системой безопасности Windows

+

+

-

Своя система безопасности

+

+

-

Передача файлов

+

+

+

Фильтрация IP

+

+

+

Параметр

Radmin

DameWare NT Utilities

Tight VNC

Синхронизация буфера обмена

+

+

+

Обратное соединение

-

+

+

Защита от атак BruteForce

+

-

-

Отправка сообщений

+

-

-

Оптимизация передаваемого трафика

+

+

+

Аутентификация по смарт-карте

-

+

-

Поддержка протокола Kerberos

+

-

-

Поддержка Unix

-

-

+

Ведение логов

+

+

+

Просмотр вида удаленного рабочего стола

+

+

+

позволяет пользователю установить TCP-соединение с сервером и затем передавать коды нажатия клавиш так, как если бы работа проводилась на консоли сервера. TELNET (RFC-854, в некоторых реализациях tn) служит для выполнения удаленного доступа к вычислительным ресурсам и базам данных (например, к базам ядерных данных в Вене, Брукхейвене или STN-international в Карлсруэ). Для входа в базу данных или ЭВМ обычно нужна аутентификация (ввод имени-идентификатора пользователя и его слова-пропуска). В некоторых реализациях допускается использование параметров, которые подключают необходимые эмуляторы терминалов [2].предлагает три услуги:

а) определяет сетевой виртуальный терминал (nvt - network virtual terminal), который обеспечивает стандартный интерфейс к удаленной системе;

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

в)      обеспечивает симметрию соединения, допуская любой программе (например ftp) выступать в качестве клиента [3].

Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в кодах ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т. д.). На прикладном уровне над TELNET находится либо программа поддержки реального терминала, либо прикладной процесс в обслуживающей машине, к которому осуществляется доступ с терминала. Формат NTV достаточно прост. Для данных используются 7-битовые ASCII коды. 8-битовые же октеты зарезервированы для командных последовательностей. взаимодействует с другой ЭВМ через протокол TELNET. Если команда TELNET вводится без аргументов ЭВМ переходит в командный режим, напечатав приглашение telnet>. В этом режиме она воспринимает и исполняет команды, описанные ниже.

При вводе TELNET с аргументами программа осуществит связь вашей ЭВМ с удаленным компьютером, имя или адрес которого вы ввели в качестве одного из аргументов.

После того как TELNET связь установлена, начинаются переговоры об используемых опциях (Таблица). Каждая из договаривающихся сторон может послать другой один из четырех запросов will, do, wont и dont.

Далее TELNET переходит в режим ввода. В этом режиме любой введенный текст пересылается удаленной ЭВМ. Ввод может производиться посимвольно или построчно. При посимвольном режиме каждый введенный символ пересылается немедленно, при построчном режиме отклик на каждое нажатие клавиши производится локально, а пересылка выполняется лишь при нажатии клавиши <Enter>. Некоторые опции требуют дополнительных данных, такая информация ожет быть получена с помощью субопций (RFC-1091). При этом клиент посылает трехбайтовую последовательность IAC WILL 24, где 24 - код-идентификатор терминала. Получатель может откликнуться последовательностью IAC DO 24, если все в порядке. Сервер в свою очередь посылает последовательность IAC SB 24 1 IAC SE, запрашивая тип терминала клиента. Здесь код 24 означает, что это субопция для опции типа терминала,а следующая 1 является командой "пришлите код вашего терминала". Клиент в свою очередь может откликнуться, послав последовательность - IAC SB 24 0 I B M P C IAC SE. Здесь байт 0 имеет значение "мой терминал имеет тип". Список кодов терминалов содержится в RFC-1700 [4].

В таблице 2 представлены коды операций службы Telnet.

Таблица 2

Коды опций в Telnet

Код опции в Telnet

Описание

Номер RFC

0

Двоичный обмен

856

1

Эхо

857

2

Повторное соединение

NIC 15391

3

Подавление буферизации ввода

858

4

Диалог о размере сообщения

NIC 15393

5

Статус

859

6

Временная метка

860

Код опции в Telnet

Описание

Номер RFC

7

Удаленный доступ и отклик

726

8

Длина выходной строки

Nic 20196

9

Размер выходной страницы

Nic 20197

10

Режим вывода символов <возврат каретки>

652

11

Вывод горизонтальной табуляции

653

12

Установка положения табуляции при выводе

654

13

Режим вывода команды смены страницы

655

14

Вывод вертикальной табуляции

656

15

Определяет положение вертикальной табуляции

657

16

Режим вывода символа <перевод строки>

658

17

Расширенный набор кодов ASCII

698

18

Возврат (logout)

727

19

Байт-макро

735

20

Терминал ввода данных

732

21

Supdup

736

22

Supdup вывод

747

23

Место отправления

779

24

Тип терминала

930

25

Конец записи

885

26

Tacacs- идентификация пользователя

927

27

Пометка вывода

933

28

Код положения терминала

946

29

Режим 3270

1041

30

X.3 PAD

1053

31

Размер окна

1073


Многие telnet-клиенты позволяют также указывать явно номер порта, через который должна быть установлена связь. По умолчанию это порт 23. Обычный пользователь не интересуется, через какой порт он работает. Но иногда желательно реализовывать telnet через разные порты системы, обеспечивающие различные услуги, это бывает полезно и с отладочными целями. Используя команду telnet XXXXXX.domain <номер порта> можно осуществить связь через порт с заданным номером с узлом XXXXXX.domain. Многие библиотеки используют метод портов для обеспечения доступа к своим ресурсам внешних Inernet-пользователей.

Помимо telnet существуют и другие стандартные процедуры, выполняющие схожие задачи. выводит заголовки пакетов проходящих через сетевой интерфейс, которые совпадают с булевым выражением. Он может также быть запущен с ключем -w, который заставляет сохранять данные пактов в файл для дальнейшего исследования, и/или с ключем -r, который заставляет читать сохраненные пакеты из файла, вместо чтения пакетов из сетевого интерфейса. В любом случае, tcpdump будут обработаны только те пакеты, которые совпадают с выражением.будет, если не запущен с ключем -c, продолжать собирать пакеты до тех пор, пока не будет прерван сигналом SIGINT (генерируемым, для примера, вводом Вашего символа прерывания, обычно CTRL+C) или сигналом SIGTERM (обычно генерируемого командой kill). Если запуск был с ключем -c, то сбор пакетов будет продолжаться до тех пор, пока не произойдет прерывание сигналом SIGINT или SIGTERM или пока не будет обработано определенное количество пакетов [5].

Когда tcpdump закончит сбор пакетов, то будет сообщено об количестве:

-  пакетов "полученных фильтром" (received by filter) (значение зависит от той ОС, на какой Вы запускаете tcpdump, и, возможно, от способа, котрым ОС была сконфигурирована - если фильтр был определен в командной строке, на некоторых ОС будут сосчитаны пакеты независимо от фильтрующего выражения, а в других ОС будут сосчитаны только те пакеты, которые попадают под фильтрующее и выражение, и были обработаны tcpdump);

-       пакетов "отброшенных ядром" (dropped by kernel) (это число пакетов, которые были отброшены, в зависимости от механизма сбора пакетов (недостаточного объема буферов) на той ОС, где запускается tcpdump, ОС предоставит эту информацию приложению или нет, и тогда будет выведено число 0).

Дальше идет описание ключей. Вот некоторые из них:

-  -c count выйти после получения определенного количества пакетов;

-       -C file_size перед записью "сырого" пакета в файл, происходит проверка на превышение размером файла лимита, указанного в file_size. Если размер файла больше, то файл закрывается и открывается новый. Новый файл будет иметь имя определенное в ключе -w, со стоящим в конце числом 2, которое будет увеличиваться в следующих именах файлов. file_size определяет размер в миллионах байт (1,000,000), а не мегабайтах (1,048,576);

-       -F file использовать file для ввода фильтрующего выражения. Выражение, указанное в командной строке, будет игнорироваться;

-       -i interface собирать пакеты только на определенном интерфейсе. Если не указан - берется минимальный по номеру интерфейс (исключая loopback). Для Linux-ядер 2.2 и более новых, возможно указать 'any', тогда будет происходить сбор на всех интерфейсах, но они не будут переведены в режим promiscuous;

-       -n не преобразовывать адрес хоста в имя. Может быть использовано, если необходимо избегать DNS-запросов;

-       -nn не преобразовывать протокол и номер порта в их имена;

-       -N не выводить доменную часть имени хоста. Например, при данном ключе будет выводится "nic" вместо "nic.ddn.mil";

-       -p не переводить интерфейс в режим promiscuous. Следует заметить, что интерфейс может быть в режиме promiscuous по другим причинам;

-       -r file читать пакеты из file (который, был создан с ключем -w). Если file указан как "-", то используется стандартный ввод;

-       -t не выводить временной штамп (timestamp) в каждой строке дампа (dump);

-       -tt выводит не форматированный временной штамп в каждой строке дампа;

-       -ttt выводить разницу (в микросекундах) между текущей и предыдущей строками дампа;

-       -tttt выводить временной штамп вместе с датой в формате по-умолчанию в каждой строке дампа;

-       -w file писать "сырые" пакеты в file перед тем как произвести их разбор и вывести. Они могут быть позднее выведены с ключем -r. Если file указан как "-", то используется стандартный вывод;

-       -x печатать каждый пакет (без заголовков уровня соединения) в шестнадцатиричном виде;

-       -X помимо шестнадцатиричного вида выводить их ASCII-значения.

Изначально программа tcpdump была разработана для UNIX-подобных систем, позже - портирована на другие системы.

Для Windows в настоящее время известны:

-  "tcpdump для Windows", коммерческая реализация, в виде одного файла tcpdump.exe;

-       "WinDump", реализация с открытым кодом, требующая установки библиотеки WinPcap (свободное ПО).

Пример tcpdump выявление аномалий TCP путем вычисления отношения числа исходящих пакетов с SYN флагом к числу входящих с SYN+ACK:

SYN_ONLY_FROM_ISP=`tcpdump -n -l -r $1 'src net 192.168.0.0/24' and \ 'dst net not 192.168.0.0/24' and 'tcp[13] == 2' | wc | awk '{print $1}'`[6].

1.3 Обоснование выбора технологии и программных средств для разработки утилиты

1.3.1 Архитектура клиент-сервер

Технология клиент-сервер подразумевает выполнение запросов пользователей специализированным компьютером, называемым сервером. Пользователи, которые отправляют запросы на этот сервер, называются клиентами. Запрос на выполнение операции с данными (например, обычная выборка), выдаваемый клиентом, порождает на сервере поиск и извлечение данных. Извлеченные данные транспортируются по сети от сервера к клиенту. Системы, использующие технологию клиент-сервер, разделяются на две части: клиентская часть обеспечивает графический интерфейс и находится на компьютере пользователя; серверная часть обеспечивает управление данными, разделение информации, администрирование и безопасность и находится на специально выделенных для этого компьютерах [7].

Большинство прикладных систем включает модули, реализующие GUI, обработку бизнес-информации и доступ к базам данных. Концепции многоуровневой конструкции относятся как к внутрифирменным, так и к глобальным информационным системам. В двух- и трехуровневых системах приложение логически разбивается на три части:

а)      GUI;

б)      бизнес-логика;

в)      СУБД.

В основе своей двухуровневая система имеет GUI и бизнес-логику с прямым доступом к базе данных. GUI находится на системе клиента, а база данных - либо у клиента, либо на сервере. Обычно GUI пишется на C++, Visual Basic, Access Basic и т.д. Типичными базами данных являются MIcrosoft Access, Personal Oracle и т.д.

Двухуровневая система изображена на рисунке 1.

Рисунок 1. Двухуровневая система

Большинство клиент-серверных приложений следуют сегодня трехуровневой стратегии, при которой GUI, бизнес-логика и базы данных логически разбиты на три слоя. Здесь GUI пишется на Visual Basic, C++ или Power Builder, средствами разработки среднего слоя также служит C++ или Visual Basic. В качестве базы данных используются Oracle, Microsoft SQLServer и т.д. Трехуровневая концепция дала начало эпохе серверов баз данных, серверов приложений и клиентских GUI-машин. Такие операционные системы как UNIX, Windows NT и Solaris правят в мире серверов баз данных и приложений. Клиентские операционные системы (Windows) популярны среди разработчиков GUI. Двухуровневая архитектура может быть дополнена третьим программным уровнем во избежание встраивания логики приложения как в клиентскую часть, так и в базу данных. В трехуровневой архитектуре большая часть логики приложения зафиксирована на среднем уровне. В подобной архитектуре при изменении направления деловой активности или бизнес-процессов меняется только программное обеспечение программного слоя.

Трехуровневая система изображена на рисунке 2.

Рисунок 2. Трехуровневая система.

Сейчас, во времена Internet и Java изменились взгляды на отношения клиента и компьютерной сети. Апплеты Java с их объектами и методами привели к возникновению идеи многоуровневой клиент-серверной системы. Теоретически апплет Java может содержать бизнес-логику, GUI или СУБД. Каждый апплет можно рассматривать как отдельный слой. Концепция объектно-ориентированных многоуровневых систем возникла до появления Internet и Java. Архитектуры CORBA фирмы OMG и OLE (теперь ActiveX) фирмы Microsoft являются первыми модульными объектно-ориентированными системами, работающими на разных платформах. Internet и Java упростили реализацию этой концепции. Конструкция и реализация систем прошли путь от двух и трехуровневой архитектуры до современных межсетевых многоуровневых архитектур, основанных на апплетах Java [8].

Многоуровневая система изображена на рисунке 3.

Рисунок 3. Многоуровневая система

1.3.2 Протокол передачи команд и сообщений об ошибках (ICMP)

Internet control message protocol используется программным обеспечением ЭВМ при взаимодействии друг с другом в рамках идеологии TCP/IP. Осуществление повторной передачи пакета, если предшествующая попытка была неудачной, лежит на TCP или прикладной программе. При пересылке пакетов промежуточные узлы не информируются о возникших проблемах, поэтому ошибка в маршрутной таблице будет восприниматься как неисправность в узле адресата и достоверно диагностироваться не будет. ICMP-протокол сообщает об ошибках в IP-дейтограммах, но не дает информации об ошибках в самих ICMP-сообщениях. icmp использует IP, а IP-протокол должен использовать ICMP. В случае ICMP-фрагментации сообщение об ошибке будет выдано только один раз на дейтограмму, даже если ошибки были в нескольких фрагментах. Подводя итоги, можно сказать, что ICMP-протокол осуществляет:

- передачу отклика на пакет или эхо на отклик;

-             контроль времени жизни дейтограмм в системе;

-             реализует переадресацию пакета;

-             выдает сообщения о недостижимости адресата или о некорректности параметров;

-             формирует и пересылает временные метки;

-             выдает запросы и отклики для адресных масок и другой информации.сообщения об ошибках никогда не выдаются в ответ на:

- icmp-сообщение об ошибке;

-             при мультикастинг или широковещательной адресации;

-             для фрагмента дейтограммы (кроме первого);

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

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

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

Некоторые из датаграмм могут исчезнуть в сети, не вызвав при этом ни каких оповещений. Протоколы более высокого уровня, использующие протокол IP, должны применять свои собственные процедуры для обеспечения надежности передачи данных, если таковая требуется [9].

В таблице 3 указан список типов сообщений.

Таблица 3

Список типов сообщений

Сообщение

Описание

0

Ответ на запрос эхо

3

Адресат недостижим

4

Приостановка отправителя

5

Переадресация

8

Эхо-запрос

11

Превышение контрольного времени

12

Проблемы с параметрами

13

Штамп времени

14

Ответ на запрос штампа времени

15

Запрос информации

16

Ответ на запрос информации


1.3.3 Среда разработки Borland Delphi 7

Delphi - это комбинация нескольких важнейших технологий:

-  высокопроизводительный компилятор в машинный код;

-       объектно-ориентированная модель компонент;

-       визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов;

-       масштабируемые средства для построения баз данных.

Компилятор, встроенный в Delphi, обеспечивает высокую производительность, необходимую для построения приложений в архитектуре “клиент-сервер”. Этот компилятор в настоящее время является самым быстрым в мире, его скорость компиляции составляет свыше 120 тысяч строк в минуту на компьютере 486DX33. Он предлагает легкость разработки и быстрое время проверки готового программного блока, характерного для языков четвертого поколения (4GL) и в то же время обеспечивает качество кода, характерного для компилятора 3GL. Кроме того, Delphi обеспечивает быструю разработку без необходимости писать вставки на Си или ручного написания кода (хотя это возможно).

В процессе построения приложения разработчик выбирает из палитры компонент готовые компоненты как художник, делающий крупные мазки кистью. Еще до компиляции он видит результаты своей работы - после подключения к источнику данных их можно видеть отображенными на форме, можно перемещаться по данным, представлять их в том или ином виде. В этом смысле проектирование в Delphi мало чем отличается от проектирования в интерпретирующей среде, однако после выполнения компиляции мы получаем код, который исполняется в 10-20 раз быстрее, чем то же самое, сделанное при помощи интерпретатора. Кроме того, компилятор компилятору рознь, в Delphi компиляция производится непосредственно в родной машинный код, в то время как существуют компиляторы, превращающие программу в так называемый p-код, который затем интерпретируется виртуальной p-машиной. Это не может не сказаться на фактическом быстродействии готового приложения.

Основной упор этой модели в Delphi делается на максимальном реиспользовании кода. Это позволяет разработчикам строить приложения весьма быстро из заранее подготовленных объектов, а также дает им возможность создавать свои собственные объекты для среды Delphi. Никаких ограничений по типам объектов, которые могут создавать разработчики, не существует. Действительно, все в Delphi написано на нем же, поэтому разработчики имеют доступ к тем же объектам и инструментам, которые использовались для создания среды разработки. В результате нет никакой разницы между объектами, поставляемыми Borland или третьими фирмами, и объектами, которые вы можете создать.

В стандартную поставку Delphi входят основные объекты, которые образуют удачно подобранную иерархию из 270 базовых классов. Для начала - неплохо. Но если возникнет необходимость в решении какой-то специфической проблемы на Delphi, советуем, прежде чем попытаться начинать решать проблему “с нуля”, просмотреть список свободно распространяемых или коммерческих компонент, разработанных третьими фирмами, количество этих фирм в настоящее время превышает число 250. Скептики, возможно, не поверят мне, когда я скажу, что на Delphi можно одинаково хорошо писать как приложения к корпоративным базам данных, так и, к примеру, игровые программы. Тем не менее, это так. Во многом это объясняется тем, что традиционно в среде Windows было достаточно сложно реализовывать пользовательский интерфейс. Событийная модель в Windows всегда была сложна для понимания и отладки. Но именно разработка интерфейса в Delphi является самой простой задачей для программиста. реда Delphi включает в себя полный набор визуальных инструментов для скоростной разработки приложений (RAD - rapid application development), поддерживающей разработку пользовательского интерфейса и подключение к корпоративным базам данных. VCL - библиотека визуальных компонент, включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. Единственное, что можно поставить в вину Delphi, это то, что готовых компонент, поставляемых Borland, могло бы быть и больше. Однако, разработки других фирм, а также свободно распространяемые программистами freeware-компоненты уже восполнили этот недостаток. Постойте, - скажете вы, ведь это уже было. Да, это было в Visual Basic.

В первую очередь Delphi предназначен для профессионалов-разработчиков корпоративных информационных систем. Может быть, здесь следует пояснить, что конкретно имеется в виду. Не секрет, что некоторые удачные продукты, предназначенные для скоростной разработки приложений (RAD - rapid application development) прекрасно работают при изготовлении достаточно простых приложений, однако, разработчик сталкивается с непредвиденными сложностями, когда пытается сделать что-то действительно сложное. Бывает, что в продукте вскрываются присущие ему ограничения только по прошествии некоторого времени.такие ограничения не присущи. Хорошее доказательство тому - это тот факт, что сам Delphi разработан на Delphi. Можете делать выводы. Однако Delphi предназначен не только для программистов-профессионалов. Я читал в электронной конференции совершенно неожиданные для меня письма, где учителя, врачи, преподаватели ВУЗов, бизнесмены, все те, кто используют компьютер с чисто прикладной целью, рассказывали о том, что приобрели Delphi for Windows для того, чтобы быстро решить какие-то свои задачи, не привлекая для этого программистов со стороны. В большинстве случаев им это удается. Поразительный факт - журнал Visual Basic Magazine присудил свою премию Delphi for Windows.

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

Локальный сервер InterBase - следует заметить, что этот инструмент предназначен только для автономной отладки приложений. В действительности он представляет из себя сокращенный вариант обработчика SQL-запросов InterBase, в который не включены некоторые возможности настоящего сервера InterBase. Отсутствие этих возможностей с лихвой компенсируется преимуществом автономной отладки программ. Development Support - средство поддержки разработки проекта в группе. Позволяет существенно облегчить управление крупными проектами. Это сделано в виде возможности подключения такого продукта как Intersolve PVCS 5.1 непосредственно к среде Delphi.

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

Благодаря такой архитектуре приложения, изготовленные при помощи Delphi, работают надежно и устойчиво. Delphi поддерживает использование уже существующих объектов, включая DLL, написанные на С и С++, OLE сервера, VBX, объекты, созданные при помощи Delphi. Из готовых компонент работающие приложения собираются очень быстро. Кроме того, поскольку Delphi имеет полностью объектную ориентацию, разработчики могут создавать свои повторно используемые объекты для того, чтобы уменьшить затараты на разработку. предлагает разработчикам - как в составе команды, так и индивидуальным - открытую архитектуру, позволяющую добавлять компоненты, где бы они ни были изготовлены, и оперировать этими вновь введенными компонентами в визуальном построителе. Разработчики могут добавлять CASE-инструменты, кодовые генераторы, а также авторские help’ы, доступные через меню Delphi.way tools - однозначное соответствие между визуальным проектированием и классическим написанием текста программы Это означает, что разработчик всегда может видеть код, соответствующий тому, что он построил при помощи визуальных инструментов и наоборот.

Визуальный построитель интерфейсов (Visual User-interface builder) дает возможность быстро создавать клиент-серверные приложения визуально, просто выбирая компоненты из соответствующей палитры.

Эта библиотека объектов включает в себя стандартные объекты построения пользовательского интерфейса, объекты управления данными, графические объекты, объекты мультимедиа, диалоги и объекты управления файлами, управление DDE и OLE. использует структурный объектно-ориентированный язык (Object Pascal), который сочетает с одной стороны выразительную мощь и простоту программирования, характерную для языков 4GL, а с другой стороны эффективность языка 3GL. Программисты немедленно могут начать производить работающие приложения, и им не придется для этого изучать особенности программирования событий в Windows. Delphi полностью поддерживает передовые программные концепции включая инкапсуляцию, наследование, полиморфизм и управление событиями. обладает мощнейшим, встроенным в редактор графическим отладчиком, позволяющим находить и устранять ошибки в коде. Вы можете установить точки останова, проверить и изменить переменные, при помощи пошагового выполнения в точности понять поведение программы. Если же требуются возможности более тонкой отладки, Вы можете использовать отдельно доступный Turbo Debugger, проверив ассемблерные инструкции и регистры процессора. (Дельфи) - cреда программирования, использующая язык Object Pascal, разработанный фирмой Borland и изначально реализованный в её пакете Borland Delphi, от которого и получил в 2003 году своё нынешнее название. По сути, является наследником языка Pascal с объектно-ориентированными расширениями.

Изначально язык был предназначен исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft.NET. При этом высказывались предположения, что эти два факта взиамосязаны. Аналогичная ситуация имела место и ранее - см. Турбо Паскаль.

Реализация языка Delphi проектом Free Pascal позволяет использовать его для создания приложений для таких платформ, как Mac OS X, Windows CE и Linux.

1.4 Определения, термины и сокращения


Ниже представлена таблица 3 определений, терминов и сокращений

Таблица 3

Определения, термины и сокращения

Сокращение или термин

Определение

ЛВС

Локальная вычислительная сеть

LAN

Local Area Network

Файрвол

Комплекс аппаратных или программных средств, осуществляющий контроль и фильтрацию проходящих через него сетевых пакетов в соответствии с заданными правилами

GUI

Графический пользовательский интерфейс

Active Directory

Служба каталогов корпорации Microsoft для операционных систем семейства Windows NT.

RAT

Remote Administration Tools (Инструменты для удаленного администрирования)

Сокет

Название программного интерфейса для обеспечения обмена данными между процессами.

DNS

Domain Name System

IP-адрес

Сетевой адрес узла в компьютерной сети, построенной по протоколу IP

ПК

Персональный компьютер

Бизнес-логика

Часть программы, имеющая дело с расчетами

СУБД

Система управления базой данных

IDE

Integrated Developer Environment

IP

Internet Protocol

ICMP

Internet Control Message Protocol

IDEF0

Методология проектирования и анализа бизнес-процессов

2. Детальные требования

2.1 Требования к функциональным характеристикам


Функциональные требования к разрабатываемой утилите:

-  подключение к пользовательской машине;

-       получение полной информации об операционной системе и технических характеристиках пользовательской машины;

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

-       вызов экрана, отображающего рабочую область монитора пользовательской машины;

-       отключение клавиатуры и «мыши» на пользовательской машине;

-       отправка сообщений, имитирующих стандартные окна сообщений windows;

-       сохранение списка подключенных машин предыдущей сессии в отдельном файле RD.ini;

-       применение некоторых функций сразу к нескольким компьютерам;

-       во избежание критических ситуаций визуальное управление проводится только над одним компьютером;

-       скрытие запущенного серверного приложения в системном трее;

-       создание инсталлятора для серверного приложения;

-       создания инсталлятора для клиентского приложения;

-       входными данными должны быть IP-адрес и имя узла;

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

2.2
Нефункциональные требования


Утилита RAT обеспечивает возможность добавления неограниченного количества элементов в список управляемых компьютеров.

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

-  для операций навигации по экранным формам системы - не более 2 сек;

-       для перехвата визуального управления - не более 15 сек;

-       для операций подключения к удаленному компьютеру - не более 6 сек.

В случае контроля сети файрволом или антивирусом указанные временные характеристики могут несколько растянуться.

Система должна сохранять работоспособность и обеспечивать восстановление своих функций при возникновении следующих внештатных ситуаций:

-  при сбоях в системе электроснабжения аппаратной части, приводящих к перезагрузке ОС, восстановление программы должно происходить после перезапуска ОС и запуска исполняемого файла системы;

-       при ошибках в работе аппаратных средств (кроме носителей данных и программ) восстановление функции системы возлагается на ОС;

-       при ошибках, связанных с программным обеспечением (ОС и драйверы устройств), восстановление работоспособности возлагается на ОС.

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

В ходе проектирования были наложены следующие ограничения:

-  ограничения по инструментам и языкам. Строгое использование интегрированной среды разработки (IDE) Delphi 7 и библиотеки VCL;

-       приложение предназначено для работы в ОС Microsoft Windows 95/98/2000/ME/XP;

-       ограничения по проектированию - не ограничено.

2.3 Пользовательские интерфейсы


Графический интерфейс пользователя (ГИП) - разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений.

В отличие от интерфейса командной строки, в ГИ пользователь имеет произвольный доступ (с помощью устройств ввода - клавиатуры, мыши, джойстика и т. п.) ко всем видимым экранным объектам (элементам интерфейса) и осуществляет непосредственное манипулирование ими. Чаще всего элементы интерфейса в ГИ реализованы на основе метафор и отображают их назначение и свойства, что облегчает понимание и освоение программ неподготовленными пользователями [10].

Одним из требований к хорошему графическому интерфейсу программной системы является концепция «делай то, что я имею в виду» или DWIM (Do What I Mean). DWIM требует, чтобы система работала предсказуемо, чтобы пользователь заранее интуитивно понимал, какое действие выполнит программа после получения его команды.

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

Интерфейс рассчитан на преимущественное использование манипулятора типа «мышь», то есть управление системой осуществляется с помощью набора экранных меню, кнопок, значков и т. п. элементов. Клавиатурный режим ввода используется главным образом при заполнении и/или редактировании текстовых и числовых полей экранных форм.

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

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

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

На рисунке 4 изображено главное окно клиентского приложения.

Рисунок 4. Главное окно клиентского приложения

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

Рисунок 5. Добавление и удаление компьютеров

При добавлении компьютера вызывается окно «Добавление объекта» (рисунок 6).

Рисунок 6. Добавление объекта

Окно визуального удаленного управления изображено на рисунке 7.

Рисунок 7. Окно визуального управления

На рисунке 8 представлено окно «Диспетчер задач».

Рисунок 8. Диспетчер задач

На рисунке 9 представлено окно отправки сообщений на удаленный компьютер.

Рисунок 9. Отправка сообщений

На рисунке 10 изображено окно завершения работы удаленного компьютера.

Рисунок 10. Завершение работы

На рисунке 11 изображено окно «Системная информация»

Рисунок 11. Системная информация

На рисунке 12 представлено изображение окна «Дистанционная командная строка».

Рисунок 12. Дистанционная командная строка

Сообщения выводятся в отдельном окне. Например, диалоговое окно «удаление объекта» (рисунок 13).

Рисунок 13. Удаление объекта

2.4 Аппаратные интерфейсы


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

Минимальные требования к аппаратуре администраторского компьютера:

-  HDD 30 MB;

-       CPU Intel Pentium III 1.8 GHz;

-       256 MB RAM;

-       интегрированная или VGA видеокарта;

-       сетевая карта;

-       клавиатура;

-       мышь.

Минимальные требования к аппаратуре пользовательского компьютера:

-  HDD 30 MB;

-       CPU Intel Pentium III 1.8 GHz;

-       256 MB RAM;

-       сетевая карта;

-       клавиатура;

-       мышь.

Рекомендуемые требования к аппаратуре администраторского компьютера:

-  HDD 60 MB;

-       CPU Intel Pentium III 1.8 GHz;

-       512 MB RAM;

-       интегрированная или VGA видеокарта;

-       сетевая карта;

-       клавиатура;

-       мышь.

Рекомендуемые требования к аппаратуре пользовательского компьютера:

-  HDD 60 MB;

-       CPU Intel Pentium III 1.8 GHz;

-       512 MB RAM;

-       сетевая карта;

-       клавиатура;

-       мышь.

2.5 Программные интерфейсы


Программный интерфейс - функциональность, которую некоторый программный компонент предоставляет другим программным компонентам. Можно различать два вида такой функциональности: та, что используется при создании прикладных программ, и та, что используется при создании системных компонентов. Первая обычно называется интерфейсом программирования приложений (API, англ. application programming interface), вторая может называться интерфейсом программирования компонентов операционной системы или интерфейсом системного программирования (SPI, англ. system programming interface). Кроме того, программные интерфейсы могут быть разноуровневыми, относясь либо к уровню программного кода (API и SPI), либо к уровню кода машинного.

Для корректной работы программы на всех компьютерах сети должны быть установлены операционные системы семейства Microsoft Windows (95/98/2000/ME/XP).

2.6 Требования к реализации

Приложение написано и скомпилировано в интегрированной среде разработки (IDE) Borland Delphi 7 с использованием стандартных визуальных и не визуальных компонент библиотеки VCL.

Между серверной и клиентской частями программы TCP-соединение происходит посредством компанент TIdTCPClient и TIdTCPServer.

Установление связи и передача данных в поток на клиентской стороне реализованы в процедуре ipcomand.

procedure TForm1.IpComand(Comand:string);xx,i1,ii:integer;:=0;:=0;SelectedCount > 0 thenxx:=0 to SelectedCount-1 do:=xx;

//if (TCPClient.connected=true) and (TCPClient.Host = fadd[xx]) then

//tcpclient.port:=defaultipport;.Disconnect;.Host:=fadd[xx];.port:=defaultipport;.Connect;comand= '' then if sc >1 thenii:=0 to sc do.writeln(sicom[ii]);

// sleep(10);.writeln(comand);

// continue;.Lines.Add('Неудается установить связь с '+fadd[i1]);;;(sicom,sizeof(sicom),0);sc:=0;;

Происходит установление связи и заполнение полей компаненты TCPClient. В поле «IP-адрес» записывается адрес из массива адресов fadd[]. В поле «порт» записывается статический порт 8090.

Далее посредством функции writeln(string) в поток записывается строковая команда.

Для перехода в режим визуального управления запускается компонент TTim

er1.TForm1.Timer1Timer(Sender: TObject);:TMemoryStream;:tjpegimage;,y:integer;:string;tcpclient do:=TJPEGImage.Create;:=TMemoryStream.Create;

//writeln(#13+#10);('GSS');:=uppercase(readln);s12 = 'TRUE' then:=readinteger;:=readinteger;

// ReadStream(a,readinteger,false);(a,-1,true);;.Seek(0,soFromBeginning);.LoadFromStream(A);.Canvas.Draw(x,y,j);;(i);.Free;.Free;

//finally.Panel1.Caption:='Визуальное управление: '+ListBox1.Items[0];.Close;.enabled:=false;;

end;

end;

Здесь происходит инициализации переменной типа TJPEGImage для визуализации удаленного рабочего стола. Открывается поток и в переменную записываются данные потока.

Сервер на действия реагирует посредством процедуры TCPServerExecute.

procedure TForm1.TCPServerExecute(AThread: TIdPeerThread);,s,SRequest: string;:cardinal;:boolean;: TMemoryStatus;:Double;:integer;AThread.Connection doConnected do:= UpperCase(Readln);

//Отправляем снимок экранаSRequest = 'GSS' then;////cansend then

writeln('TRUE');(xmin);(ymin);

begin;(b,true);;;;not cansend then writeln('FALSE');;:=0;:=0;:=maxint;:=maxint;.free;:=TMemoryStream.Create;

end;;

Далее представлен пример реакции сервера на команду клиента:

if SRequest = 'MODO' then(strtoint(readln),strtoint(readln));;SRequest = 'KEDO' then(strtoint(readln));;SRequest = 'KEUP' then

begin(strtoint(readln));

 


Специальная часть

3.1 Моделирование предметной области


Предметная область - часть реального мира, рассматриваемая в пределах данного контекста. Под контекстом здесь может пониматься, например, область исследования или область, которая является объектом некоторой деятельности.

Моделирование предметной области является одним из наиболее важных этапов работ при проектировании программных систем масштаба предприятия.

Итак, основными задачами при моделировании предметной области являются описания:

- бизнес-процессов предприятия;

-             действующих лиц бизнес-процессов и их функций, подлежащих автоматизации в привязке к структуре автоматизируемого предприятия;

-             бизнес сущностей;

-             сценариев выполнения бизнес-функций, подлежащих автоматизации;

-             состояний бизнес-сущностей;

-             бизнес-правил.

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

3.1.1 Моделирование бизнес-процессов

На начальном этапе анализа и изучения системы происходит моделирование средствами методологии IDEF0.- Function Modeling - методология функционального моделирования и графическая нотация, предназначенная для формализации и описания бизнес-процессов. Отличительной особенностью IDEF0 является её акцент на соподчинённость объектов. В IDEF0 рассматриваются логические отношения между работами, а не их временна́я последовательность (WorkFlow).

На рисунках 14 и 15 представлены работа IT-отдела предприятия в целом и декомпозиция деятельности IT-отдела.

Рисунок 14. Деятельность IT-отдела предприятия

Рисунок 15. Деятельность IT-отдела предприятия (декомпозиция)

На вышеуказанных диаграммах представлена деятельность IT-отдела предприятия, основными функциями которой являются:

- настройка программного обеспечения компьютеров;

-             настройка аппаратного обеспечения компьютеров;

-             наладка сетевого оборудования.

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

3.2 Спецификация вариантов использования

3.2.1 Р аспределение требования по субъектам и вариантам использования

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

При работе с вариантами использования важно помнить несколько простых правил:

- каждый вариант использования относится как минимум к одному действующему лицу;

-             каждый вариант использования имеет инициатора.

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

Итак, после автоматизации и внедрения утилиты Remote Administration Tools «настройка программного обеспечения компьютеров» включает в себя следующие прецеденты:

- подключение к управляемому компьютеру;

-             получение системной информации о компьютере;

-             получение информации о запущенных процессах и приложениях на администрируемом компьютере;

-             перехват управления над клавиатурой и «мышью» администрируемого компьютера;

-             переход в режим визуального управления;

-             возможность запуска приложений на удаленном компьютере.

На рисунке 16 представлена диаграмма вариантов использования.

Рисунок 16. Диаграмма вариантов использования

Построим таблицу, которая распределяет функциональные требования по субъектам и прецедентам.

В таблице 4 представлено распределение требований по субъектам и вариантам использования.

Таблица 4

Распределение требований по субъектам и вариантам использования

Требования

Субъект

Прецедент

Администратор выбирает по IP-адресу и условному имени компьютер, подлежащий наладке, и подключается. Приложение, в случае невозможности подключения выдает сообщение с текстом ошибки.

Системный администратор

Подключение к удаленному компьютеру

Требование

Субъект

Прецедент

Администратор, используя функцию «получение системной информации», узнает необходимую ему информацию об управляемом компьютере.

Системный администратор

Получение системной информации об удаленном компьютере

Приложение создает список всех запущенных процессов и приложений на удаленном компьютере и выдает его администратору.

Системный администратор

Получение информации о запущенных процессах и приложениях на администрируемом компьютере

Администратор подает запрос приложению о перехвате управления над клавиатурой и мышью удаленного компьютера. Система обрабатывает запрос и выдает право управления администратору.

Системный администратор

Перехват управления над клавиатурой и «мышью» администрируемого компьютера

Серверное приложение обрабатывает и передает вид удаленного рабочего стола клиентскому приложению.

Системный администратор

Переход в режим визуального управления

Администратор вызывает удаленную командную строку. Система передает право запуска приложений администратору.

Системный администратор

Возможность запуска приложений на удаленном компьютере


3.2.2 Описательная спецификация варианта использования

На таблицах 5-10 представлена описательная спецификация вариантов использования.

Таблица 5

Спецификация прецедента «Подключение к удаленному компьютеру»

Параметры прецедента

Описание

ВИ

Подключение к удаленному компьютеру.

ID

1

Краткое описание

Установление соединения между компьютерами администратора и пользователя.

Основное действующее лицо

Системный администратор.

Предусловия

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

Основной поток

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

Альтернативные потоки

Нет.

Постусловия

Администратор получает возможность дальнейшего управления над удаленным компьютером.


Таблица 6

Спецификация прецедента «Получение системной информации об удаленном компьютере»

Параметры прецедента

Описание

ВИ

Получение системной информации об удаленном компьютере.

ID

2

Краткое описание

Запрос на получение системной информации об операционной системе, файловой системе и пр.

Параметры прецедента

Основное действующее лицо

Системный администратор.

Предусловия

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

Основной поток

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

Альтернативные потоки

Нет.

Постусловия

Нет.


Таблица 7

Спецификация прецедента «Информация о запущенных процессах и приложениях»

Параметры прецедента

Описание

ВИ

Информация о запущенных процессах и приложениях.

ID

3

Краткое описание

Получение информации о запущенных процессах и приложениях на администрируемом компьютере.

Основное действующее лицо

Системный администратор.

Предусловия

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

Параметры прецедента

Описание

Основной поток

- прецедент начинается после установления связи между клиентским и серверными машинами; - приложение создает список всех запущенных процессов и приложений на удаленном компьютере и выдает его администратору.

Альтернативные потоки

Нет.

Постусловия

Нет.


Таблица 8

Спецификация прецедента «Управление клавиатурой и «мышью» удаленного компьютера»

Параметры прецедента

Описание

ВИ

Управление клавиатурой и «мышью» удаленного компьютера.

ID

4

Краткое описание

Перехват управления над клавиатурой и «мышью» администрируемого компьютера в режиме визуального управления.

Основное действующее лицо

Системный администратор.

Предусловия

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

Основной поток

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

Параметры прецедента

Описание

Альтернативные потоки

Нет.

Постусловия

Пользовательский компьютер работает под управлением системного администратора.


Таблица 9

Спецификация прецедента «Режим визуального управления»

Параметры прецедента

Описание

ВИ

Режим визуального управления.

ID

5

Краткое описание

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

Основное действующее лицо

Системный администратор.

Предусловия

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

Параметры прецедента

Описание

Основной поток

- прецедент начинается после установления связи между клиентским и серверным машинами; - приложение анализирует параметры визуального подключения и передает управление администратору.

Альтернативные потоки

Нет.

Постусловия

Клиентское приложение переходит в режим наблюдения или режим визуального управления над пользовательским компьютером.


Таблица 10

Спецификация прецедента «Запуск приложений на удаленном ПК»

Параметры прецедента

Описание

ВИ

Запуск приложений на удаленному ПК

ID

6

Краткое описание

Получение возможности удаленного запуска программ с использованием удаленной командной строки.

Основное действующее лицо

Системный администратор.

Предусловия

Для начала действия прецедента необходимо установление связи с удаленной машиной.

Основной поток

- прецедент начинается после установления связи между клиентским и серверным машинами; - клиентская сторона после заполнения окна и выбора опций, передает серверу переменную типа string. - Сервер, прочитав поток, запускает приложение в командной строке.

Альтернативные потоки

Нет.

Постусловия

Нет.


3.3    Моделирование динамических аспектов системы


3.3.1 Диаграммы последовательности

Диаграмма последовательности - методология объектно-ориентированного проектирования, предназначенная для моделирования взаимодействия во времени. Диаграмма последовательности позволяет отслеживать поведение взаимодействующих групп объектов.

На рисунке 17 изображена диаграмма последовательности для прецедента «визуальное управление удаленным компьютером».

Рисунок 17. Диаграмма последовательности для прецедента «визуальное управление удаленным компьютером»

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

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

3.3.2 Диаграммы деятельности

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

Деятельность начинается с запроса системного администратора на подключение к удаленной машине. Система проверяет, есть ли указанная машина в списке машин, если нет, то предлагает указать IP-адрес, после чего вызывает функцию connect (). В случае некорректности IP-адреса следует заново его указать. Если коммутация прошла успешно, то серверное приложение присылает положительный ответ. Далее клиентское приложение переходит в состояние ожидания дальнейших действий администратора. Системный администратор дает команду перехода в режим визуального управления. Клиентское приложение открывает поток и записывает в поток результат функции ipcomand(‘GSS’). Серверное приложение, находящееся в состояния чтения потока, начинает обрабатывать данные потока, после чего записывает в поток изображение удаленного рабочего стола и данные для управления удаленным компьютером. Клиентское приложение обрабатывает поток и передает управление системному администратору.

На рисунке 18 изображена диаграмма деятельности для прецедента «визуальное управление удаленным компьютером».

Рисунок 18. Диаграмма деятельности для прецедента «визуальное управление удаленным компьютером»

3.4 Статический вид системы


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

Диаграмма компонентов разрабатывается для следующих целей:

- визуализации общей структуры исходного кода программной системы;

-             спецификации исполнимого варианта программной системы;

-             обеспечения многократного использования отдельных фрагментов программного кода;

-             представления концептуальной и физической схем баз данных.

На рисунке 19 изображена диаграмма компонентов, представляющая систему в виде отношения двух модулей - RATClient.exe и RATServer.exe посредством интерфейса, описанного на стороне сервера.

Каждый модуль включает в себя файлы с расширением *.pas, являющиеся файлами, содержащими исходный код приложения.

Рисунок 19. Диаграмма компонентов

4      
. Тестирование


Для тестирования была использована утилита VMware Workstation, создающая на локальном компьютере виртуальную машину. На виртуальной машине установлена операционная система MS Windows XP SP3.

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

Рисунок 20. Главное окно клиентского приложения

Далее необходимо добавить виртуальную машину в список администрируемых (рисунок 21).

Рисунок 21. Добавление виртуальной машины в список

Для дальнейших действий необходимо выделить этот элемент в списке нажатием левой кнопки мыши. Далее приложение находится в режиме ожидания дальнейших действий.

Для того чтобы узнать системную информацию о виртуальной машине нужно в меню Менеджер (рисунок 22) выбрать пункт Системная информация. Результат изображен на рисунке 23.

Рисунок 22. Меню Менеджер

Рисунок 23. Получение системной информации о виртуальной машине

В меню Менеджер выбираем пункт Диспетчер задач для просмотра запущенных на удаленном компьютере процессов (рисунок 24).

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

Рисунок 24. Диспетчер задач

Для запуска программы Блокнот на удаленном компьютере выберем пункт меню Менеджер-Запуск программ. В открывшемся окне в строку «выполнить» напишем “notepad” и нажмем кнопку Выполнить (рисунок 25). Результат представлен на рисунке 26.

Рисунок 25. Дистанционный запуск программ

Рисунок 26. Результат дистанционного запуска программы

Для отправки короткого сообщения в диалоговом окне Windows перейдем в меню Менеджер-Отправка сообщения.

Откроется окно, предлагающее ввести текст сообщения и выбрать вид окна. Введем сообщение «Внимание!», выберем вид окна «предупреждение» и нажмем «Отправить» (рисунок 27). Результат представлен на рисунке 28.

Рисунок 27. Отправка сообщения на удаленный рабочий стол

Рисунок 28. Сообщение от администратора

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

Программа предлагает опции по выбору - простое наблюдение или использование клавиатуры и мыши для управления удаленным компьютером.

Перейдем в режим визуального управления и откроем меню свойств папки «Мои документы» (рисунок 29).

Результат изображен на рисунке 30.

Рисунок 29. Режим визуального управления

Рисунок 30. Удаленный рабочий стол

5      
. Обоснование экономической эффективности проекта

5.1 Выбор и обоснование методики расчета экономической эффективности


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

Разработка и внедрение решений для автоматизации процесса администрирования корпоративной сети тесно связано с финансовыми и временными затратами. В этом свете целесообразным является анализ и расчет экономического эффекта и срока окупаемости проекта.

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

5.2 Расчет показателей экономической эффективности проекта


Затраты на разработку и внедрение системы выражаются следующей формулой:

С=Стзпрртвнктс,

 

где  - затраты на разработку технического задания;

- затраты на проектирование приложения;

- затраты на программную реализацию;

- затраты на тестирование приложения;

- затраты на внедрение приложения;

- затраты на приобретение комплекса технических средств.

5.2.1 Расчет затрат на разработку технического задания

Затраты на разработку технического задания составляют:

Стз = ЗпРАЗР*В+Отч,

где ЗпРАЗР - заработная плата разработчика в месяц;

В - время, затраченное на разработку технического задания;

Отч. - отчисления на социальное страхование (11% от заработной платы программиста).

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

ЗпРАЗР= 70000 (тенге);

В=7 (дней):

Отч=ЗпРАЗР*В*0.11=(70000*7)/22*0.11= 2450(тенге),

Стз=(70000*7)/22+2450=24722 (тенге).

5.2.2 Расчет затраты на проектирование ПО

Затраты на проектирование приложения определяются:

Спр = ЗпРАЗР*В+Отч,

где ЗпРАЗР - заработная плата разработчика в месяц;

В - время, затраченное на проектирование ПО;

Отч. - отчисления на социальное страхование (11%).

ЗпРАЗР=70000 (тенге);

В=8 (дней):

Отч=ЗпРАЗР*В*0.11=(70000*8)/22*0.11= 2799(тенге),

Спр=(70000*8)/22+2799=28253 (тенге).

5.2.3 Расчет затрат на программную реализацию

Затраты на программную реализацию определяются формулой:

СррЗ/П,

где, Кр - стоимость машинного времени, затраченного на отладку программы;

ФЗ/П - фонд заработной платы программиста.

Кр =k *dОТЛ*q,

где k - время, затраченное при работе на ЭВМ в день;

dОТЛ - количество дней работы на ЭВМ;- стоимость часа машинного времени.

ФЗ/П =dОТЛ*ЗПРАЗРАБ+ОтчЗ/П,

где ЗПРАЗРАБ - заработная плата разработчика в месяц;

ОтчЗ/П - отчисления на социальное страхование (11%).

При реализации главную роль играет среда разработки и используемые при этом технологии.

k = 5 (часов);ОТЛ =22 (дней);=150 (тенге):

Кр = 5*22*150=16500 (тенге),

ЗПРАЗРАБ =70000 (тенге),

ОтчЗ/П = dОТЛ * ЗПРАЗРАБ *0.11 = (22*70000)/22*0.11=7700 (тенге),

ФЗ/П = dОТЛ* ЗПРАЗРАБ + ОтчЗ/П = (22*70000)/22+ 7700 =77700 (тенге),

СррЗ/П=16500 + 77700 = 94200 (тенге).

5.2.4 Расчет затрат на тестирование ПО

Затраты на тестирование приложения составляют:

СттЗ/П,

где Кт - стоимость машинного времени;

ФЗ/П - фонд заработной платы программиста.

Кт =k *dОТЛ*q,

где k - время, затраченное при работе на ЭВМ в день;ОТЛ - количество дней работы на ЭВМ;- стоимость часа машинного времени.

ФЗ/П =dОТЛ*ЗПРАЗРАБ+ОтчЗ/П,

где ЗПРАЗРАБ - заработная плата программиста;

ОтчЗ/П - отчисления на социальное страхование (11%).

Тестирование производит специалист или компетентное лицо на основании указанных функций на наличие ошибок или не правильно реагирующий функционал.

k = 4 (часов);ОТЛ =18 (дней);=150 (тенге):

Кр = 4*18*150=10800 (тенге),

ЗПРАЗРАБ =70000 (тенге),

ОтчЗ/П = (18*70000)/22*0.11=6300 (тенге),

ФЗ/П = (18*70000)/22 + 6300 =63572(тенге),

СттЗ/П=63572 + 10800 = 74372 (тенге).

5.2.5 Расчет затрат, связанных с внедрением программы

Расчет затрат, связанных с внедрением приложения:

СВНВН+ ФЗ/П вн,

где КВН - стоимость машинного времени;

ФЗ/П вн - фонд заработной платы программиста.

КВН=K*d*q,

где K - время работы на ЭВМ в день;

d - количество дней работы на ЭВМ; - стоимость часа машинного времени.

ФЗ/П = ЗПРАЗР*d/D + ОтчЗ/П,

где ЗПРАЗР - заработная плата программиста;

ОтчЗ/П - отчисления на социальное страхование (11 %).

Для инсталляции (внедрения) подсистемы программист должен установить в систему определенные компиляторы, отладочные программы.

К=4 (часов);

d=1 (дня);=150 (тенге):

КВН=4*1*150=600(тенге),

ЗПРАЗРАБ =70000 (тенге),

ОтчЗ/П = (70000*1)/22*0.11=350 (тенге),

ФЗ/П = (70000*1)/22+350=3531 (тенге),

СВН=600+3531=4131 (тенге).

5.2.6 Расчет затрат на комплекс технических средств

Затрат на комплекс технических средств определяются формулой:

СКТСКОМППРИН,

где СКОМП - стоимость компьютера;

СПРИН - стоимость принтера.

Для реализации подсистемы остановимся на следующем составе технических средств:

-  компьютеры (Pentium IV 3000 GHz 256 mb/40 Gb/128 GeForce)

-       принтеры (Canon LJ LBP-2900).

СКОМП=98500 (тенге);ПРИН=16300 (тенге);

СКТС=114800(тенге).

Теперь можно вычислить и затраты на разработку и внедрение системы:

С=Стзпрртвнктс = 24722 + 28253 +94200 +74372 +4131 + 114800 = 340478 (тенге)

5.2.7
Расчет затрат до внедрения программы

Задача по администрированию корпоративной сети в небольшой организации решалась двумя специалистами.

Затраты на решение задачи без использования программы рассчитываются по формуле:

З= ФЗ/П + ОтчЗ/П,

где ОтчЗ/П - отчисления на социальное страхование (11 %);

ФЗ/П - фонд заработной платы программиста.

Фонд заработной платы работников за год, учитывая расчет вручную, определяется по формуле:

ФЗ/П = Зпр*N*12,

где Зпр- заработная плата работников;- количество работников.

Зпр = 80000 (тенге);= 2 (человека):

ФЗ/П = Зпр*N*12 = 80000*2*12 = 1 920 000 (тенге),

ОтчЗ/П = 1920000*0.11 = 211200 (тенге),

З= ФЗ/П + ОтчЗ/П = 1920000 + 211200 = 2 131 200 (тенге).

 

5.2.8 Расчет затрат после внедрения программы

После внедрения программы численность лиц, решающих задачу, сократится до одного человека. Годовые затраты машинного времени на решение задачи определяются:

Крмаш =k *q,

где k - время, затраченное при работе на ЭВМ в месяц;- стоимость часа машинного времени.= 184 (часов);= 150 (тенге):

Кмаш =k *q = 184 * 150 = 27600 (тенге).

Годовой фонд заработной платы работника отдела, будет определяться следующим образом:

ФЗ/П = Зпр*N*12 + ОтчЗ/П;

Зпр = 100000 (тенге),

ОтчЗ/П = 100000*12*0,11=132000(тенге),

ФЗ/П = Зпр*N*12 = 100000*1*12 + 132000 = 1 332 000 (тенге),

Затр¢ = Кмаш + ФЗ/П = 27600+1 332 000 = 1 359 000 (тенге).

5.3 Расчет экономии затрат от внедрения разработанной программы


Экономия затрат от внедрения вычисляется, тг/год:

Э = Затр - Затр¢,

где Затр - затраты до внедрения системы;

Затр¢ - затраты после внедрения системы:

Э = Затр - Затр¢ = 2131200- 1359000 = 772200.

Срок окупаемости системы:

Ток = С / Э,

где С- затраты на разработку и внедрение системы (тенге);

Э - экономия затрат от внедрения системы (тг/год):

Ток = С / Э = 340478 /772200 = 0,44 (года).

Годовой экономический эффект составил:

Эфгод = Э - Ен*С = 772200 - 0.32*340478 = 663247.

5.4 Вывод


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

Заключение


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

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

Утилита призвана обеспечить:

-  доступ к удаленному компьютеру;

-       управление процессами и приложениями на пользовательских машинах;

-       подключение к удаленному рабочему столу;

-       получение необходимой информации об удаленном компьютере.

Приложение построено на основе «клиент-серверной» технологии и предполагает наличие хотя бы одного клиентского и одного серверного компьютера.

Среди остальных подобных программ Remote Administration Tools выделяет простота реализации и некоммерческая направленность проекта.

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

Список использованной литературы


1    Олифер В.Г., Олифер Н.А. Компьютерные сети. Принципы, технологии, протоколы. - СПб.: Питер, 1999. - 672 с.

2       Высокопроизводительные сети. Энциклопедия пользователя: Марк А. Спортак и др. - К.: ДиаСофт, 1998. - 432 с.

         Кульгин М. Технологии корпоративных сетей. Энциклопедия - СПб.:Питер, 2000. - 704 с.

         Гук М. Аппаратные средства локальных сетей. Энциклопедия - СПб.:Питер, 2000. - 576 с.

         Компьютерные сети+. Учебный курс (MSCE 70-058) - М.:Русская редакция, 2000. - 552 с.

         Дж. Д. Рули. Сети Windows NT 4.0 - К.:BHV, 1997. - 800 с.

         Мельников Д.А. Информационные процессы в компьютерных сетях. Протоколы, стандарты, интерфейсы, модели… - М.: КУДИЦ-ОБРАЗ, 1999. - 256 с.

8    Уильям Р. Windows XP Professional. Справочник администратора. М.:Русская Редакция, 2003. - 561 с.

9    Семенов А.Б., Стрижаков С.К., Сунчелей И.Р. Телекоммуникационные технологии - М.:Компьютер-Пресс, 2001. - 608 с.

10     Донской М.А. Пользовательский интерфейс. - СПб.:БХВ-Петербург, 1999. - С. 25-42.

         Хавронская А.М. Оценка технико-экономической эффективности программных средств // Методические указания по выполнению экономического раздела дипломных проектов и работ (для студентов специальности 050704). - Алматы: КазНТУ, 2000.

Приложение А

(обязательное)

Техническое задание по дипломному проектированию

А.1 Введение

А.1.1 Цель и назначение разработки

Основными целями создания приложения Remote Administration Tools являются:

-  облегчение контроля и администрирования компьютеров, состоящих в корпоративной сети;

-       предоставление бесплатного ПО, любым желающим администраторам сети.

А.1.2 Область применения

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

А.2 Общее описание

А.2.1 Пользовательские интерфейсы

В приложении представлен лёгкий, интуитивно-понятный пользовательский графический интерфейс.

Каждое окно приложения разбито на три части: строка меню, рабочая область и статусная строка. Строка меню горизонтальная и прижата к верхней части окна, статусная строка горизонтальная и прижата к нижней части окна,

Продолжение приложения А

рабочая область находится между строкой меню и статусной строкой и занимает всю оставшуюся площадь окна.

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

А.2.2 Аппаратные интерфейсы

Минимальные требования к аппаратуре администраторского компьютера:

-  HDD 100 MB;

-       CPU Intel Pentium III 1.8 GHz;

-       256 MB RAM;

-       интегрированная или VGA видеокарта;

-       сетевая карта.

Минимальные требования к аппаратуре пользовательского компьютера:

-  HDD 50 MB;

-       CPU Intel Pentium III 1.8 GHz;

-       128 MB RAM;

-       сетевая карта.

А.2.2 Программные интерфейсы

Приложение написано и скомпилировано в интегрированной среде разработки (IDE) Delphi 7 с использованием стандартных визуальных и не визуальных компонент библиотеки VCL.

А.2.3 Коммуникационные интерфейсы

Администрируемая сеть должна быть построена с использованием следующих минимальных технических характеристик:

-  активное сетевое оборудование коммутаторы с пропускной способностью до 10 Мбит;

-       пропускная способность канала 128 Кбит;

-       структурированная кабельная система на базе кабелей «витая пара».

Продолжение приложения А

А.2.4 Ограничения по памяти

На систему наложены следующие ограничения по памяти:

-  ОЗУ 128 МБ;

-       сетевая карта 100 Мбит;

-       HDD 100 МБ.

А.2.5 Требования по адаптации

Система работает на всех операционных системах семейства Microsoft Windows 95/98/2000/ME/XP.

А.3 Требования к разработке

А.3.1 Функциональные требования

А.3.1.1 Требования к функциональным характеристикам

Разрабатываемая система выполняет следующие функции:

-       получение полной информации об операционной системе и технических характеристиках пользовательской машины;

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

-       вызов экрана, отображающего рабочую область монитора пользовательской машины;

-       отключение клавиатуры и «мыши» на пользовательской машине;

-       отправка сообщений, имитирующих стандартные окна сообщений Windows.

А.3.1.2 Исходные данные

Исходными данными будут являться:

-  IP-адрес подключаемого узла;

Продолжение приложения А

-  условное наименование узла, удобное пользователю.

А.3.1.3 Результаты

Результатами будут являться:

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

-       получение управления над выбранным узлом.

А.3.2 Нефункциональные требования

А.3.2.1 Производительность

Система RAT должно обеспечивать возможность добавления неограниченного количества элементов в список управляемых компьютеров.

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

-  для операций навигации по экранным формам системы - не более 2 сек;

-       для перехвата визуального управления - не более 15 сек;

-       для операций подключения к удаленному компьютеру - не более 6 сек.

-       В случае контроля сети файрволом или антивирусом указанные временные характеристики могут несколько растянуться.

А.3.2.2 Надежность и доступность

Система должна сохранять работоспособность и обеспечивать восстановление своих функций при возникновении следующих внештатных ситуаций:

-при сбоях в системе электроснабжения аппаратной части, приводящих к перезагрузке ОС, восстановление программы должно происходить после перезапуска ОС и запуска исполняемого файла системы;

при ошибках в работе аппаратных средств (кроме носителей данных и программ) восстановление функции системы возлагается на ОС;

Продолжение приложения А

при ошибках, связанных с программным обеспечением (ОС и драйверы устройств), восстановление работоспособности возлагается на ОС.

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

А.3.3 Интерфейсные требования

Взаимодействие пользователей с прикладным программным обеспечением, входящим в состав системы должно осуществляться посредством визуального графического интерфейса (GUI). Интерфейс системы должен быть понятным и удобным, не должен быть перегружен графическими элементами и должен обеспечивать быстрое отображение экранных форм. Навигационные элементы должны быть выполнены в удобной для пользователя форме. Средства редактирования информации должны удовлетворять принятым соглашениям в части использования функциональных клавиш, режимов работы, поиска, использования оконной системы. Ввод-вывод данных системы, прием управляющих команд и отображение результатов их исполнения должны выполняться в интерактивном режиме. Интерфейс должен соответствовать современным эргономическим требованиям и обеспечивать удобный доступ к основным функциям и операциям системы.

Интерфейс должен быть рассчитан на преимущественное использование манипулятора типа «мышь», то есть управление системой должно осуществляться с помощью набора экранных меню, кнопок, значков и т. п. элементов. Клавиатурный режим ввода должен используется главным образом при заполнении и/или редактировании текстовых и числовых полей экранных форм.

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

А.3.4 Ограничения

В ходе проектирования были наложены следующие ограничения:

-  ограничения по инструментам и языкам. Строгое использование интегрированной среды разработки (IDE) Delphi 7 и библиотеки VCL;

-       приложение предназначено для работы в ОС Microsoft Windows 95/98/2000/ME/XP;

-       ограничения по проектированию - не ограничено.

Продолжение приложения А

А.3.5 Обратные требования

Спецификация обратных требований:

-  приложение не контролирует сетевой траффик управляемых компьютеров;

-       приложение не имеет интеграции со службой каталогов Microsoft Active Directory;

-       приложение не поддерживает системы сетевой безопасности;

-       в приложении не предусмотрена регистрация и взимание коммерческой выгоды.

Приложение Б

(обязательное)

Текст программы

Б.1 Текст клиентской части

unit Unit1;

// Главная форма, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,, ComCtrls, ExtCtrls, Buttons, Menus, IdTCPServer,,jpeg,Spin, IdAntiFreezeBase, IdAntiFreeze,sysman,shutman,stopise, REG,,hesh64x,registry, ImgList;= class(TForm): TIdTCPClient;: TLabel;: TPanel;: TPanel;: TBevel;: TMainMenu;: TMenuItem;: TBevel;: TBevel;: TGroupBox;: TRadioButton;: TRadioButton;: TBitBtn;: TTimer;: TMenuItem;: TMenuItem;: TIdAntiFreeze;: TCheckBox; Label10: TLabel;: TLabel; N22: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem; N29: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TTimer;: TMenuItem;: TMenuItem;: TMenuItem;: TCheckBox;: TCheckBox;: TLabel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TBevel;: TIdIPWatch;: TOpenDialog;: TListView;: TImageList;: TPopupMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TListBox;: TLabel;: TLabel;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMemo;BitBtn1Click(Sender: TObject);Panel3MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);Panel3MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);Panel3MouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);FormMouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);Panel3Click(Sender: TObject);Panel2Click(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);BitBtn2Click(Sender: TObject);

// procedure BitBtn32Click(Sender: TObject);TCPClientConnected(Sender: TObject);FormCreate(Sender: TObject);Timer1Timer(Sender: TObject); CtrlAltDel1Click(Sender: TObject);N8Click(Sender: TObject);N11Click(Sender: TObject);Explorer1Click(Sender: TObject);N23Click(Sender: TObject);N22Click(Sender: TObject);N24Click(Sender: TObject);N26Click(Sender: TObject);N28Click(Sender: TObject);N29Click(Sender: TObject);N2Click(Sender: TObject);askBar1Click(Sender: TObject);askBar2Click(Sender: TObject);Timer2Timer(Sender: TObject);N41Click(Sender: TObject);N10Click(Sender: TObject);ListView1KeyUp(Sender: TObject; var Key: Word;: TShiftState);ListView1MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);N45Click(Sender: TObject);N47Click(Sender: TObject);N48Click(Sender: TObject);RadioButton1Click(Sender: TObject);N49Click(Sender: TObject);N50Click(Sender: TObject);ListView1MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);N39Click(Sender: TObject);BitBtn32Click(Sender: TObject);

{ Private declarations }

{ Public declarations }readhost;GetiniFileName:string;SaveIniFileName(fname:string);writehosts;IpComand(Comand:string);RefreshObjects;ReadAdressName(fname:string);SaveAdressName(fname:string);;aversion=' Version: 1.0';= '\RD.ini';=8090;: TForm1;:TStringStream;:boolean;,sc:byte;,CAdr,FAdd,SiCom:array[0..255] of string;,i3,SelectedCount:integer;:string = 'c:\rd.ini';,z1:text;about1,unit4,icman,messman,runman,sysInfoMan;

{$IFDEF MSWINDOWS}{$R *.dfm}{$ELSE}{$R *.xfm}{$ENDIF}

TForm1.IpComand(Comand:string);xx,i1,ii:integer;

// s:string;:=0;:=0;SelectedCount > 0 thenxx:=0 to SelectedCount-1 do

// sleep(10);:=xx;

//if (TCPClient.connected=true) and (TCPClient.Host = fadd[xx]) then

//tcpclient.port:=defaultipport;.Disconnect;.Host:=fadd[xx];.port:=defaultipport;.Connect;

comand= '' then if sc >1 thenii:=0 to sc do.writeln(sicom[ii]);

// sleep(10);.writeln(comand);

// continue;.Lines.Add('Неудается установить связь с '+fadd[i1]);;;(sicom,sizeof(sicom),0);sc:=0;

end;

{except.Caption:='Неудается установить связь с '+fadd[i1];

end;}

TFORM1.RefreshObjects;ii:integer;:=0;.Items.Clear;(ifname);ii:=0 to count-1 do.Items.Add.Caption:=cname[ii];

//caption:=inttostr(count);:=count;(ifname);;TForm1.SaveAdressName(fname:string);xx,yy,c:integer;:=0;yy:=0;(z1,fname);(z1);:=ListView1.Items.Count-1;xx:=0 to c doyy:=0 to count doListView1.Items.Item[xx].Caption = cname[yy] then(z1,'['+cname[yy]+']=<'+cadr[yy]+'>');(z1);;

TForm1.ReadAdressName(fname:string);,ss:string;,i1,i2:integer;:=0;

:=0;:=0;:='';:='';:=0;(z,ifname);

// if FileExists(ifname) then(z) ;

//else

// begin

// rewrite(z);

// closefile(z);

// assignfile(z,ifname);

//end;not eof(z) do(z,s);i:=1 to length(s) docopy(s,i,1) = '[' then:=i;copy(s,i1,1) <> ']' do(i1);:=ss+copy(s,i1,1);;(ss,i1-1,i1);[i2]:=ss;:='';(i2);(count);;;:=0;:=0;:=0;:='';:='';(z);not eof(z) do(z,s);

i:=1 to length(s) docopy(s,i,1) = '<' then:=i;copy(s,i1,1) <> '>' do:=ss+copy(s,i1,1);(i1);;(ss,1,1);[i2]:=ss;

:='';(i2);;;(z);;

tform1.SaveIniFileName(fname:string);: TRegistry;:= TRegistry.Create;.RootKey := HKEY_LOCAL_MACHINE;.LazyWrite := false;not reg.KeyExists('Software\HummerSoft\Remote Driver') then.CreateKey('Software\HummerSoft\Remote Driver');.CloseKey;.Free;:= TRegistry.Create;.RootKey := HKEY_LOCAL_MACHINE;.LazyWrite := false;;.OpenKey('Software\HummerSoft\Remote Driver',);.WriteString('IniFile', fname);.CloseKey;.free;

;

tform1.GetiniFileName:string;: TRegistry;: String;: String;:= TRegistry.Create;.RootKey := HKEY_LOCAL_MACHINE;:= 'Software\HummerSoft\Remote Driver';TheReg.OpenKey(KeyName, False) then:= TheReg.ReadString('IniFile');.CloseKey;;.Free;:=ValueStr;;;

IsSoftIce95Loaded: boolean;hFile: Thandle;:= false;:= CreateFileA('\\.\SICE', GENERIC_READ or GENERIC_WRITE,_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,_ATTRIBUTE_NORMAL, 0);( hFile <> INVALID_HANDLE_VALUE ) then begin(hFile);:= TRUE;;;

IsSoftIceNTLoaded: boolean;hFile: Thandle;

:= false;:= CreateFileA('\\.\NTICE', GENERIC_READ or GENERIC_WRITE,_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,_ATTRIBUTE_NORMAL, 0);

( hFile <> INVALID_HANDLE_VALUE ) then begin(hFile);:= TRUE;;;tform1.readhost;Buffer : array [0..255] of char;(buffer,sizeof(buffer));fileexists(pchar(buffer+inifilename)) then

//CB.Items.LoadFromFile(buffer+inifilename);;;

tform1.writehosts;Buffer : array [0..255] of char;(buffer,sizeof(buffer));

//CB.Items.savetofile(buffer+inifilename);;

TForm1.BitBtn1Click(Sender: TObject);tCPClient.Connected then.Disconnect;.Lines.Add('Disconnect');;;

TForm1.Panel3MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);.Color:=clwhite;;

TForm1.Panel3MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);.Color:=clwhite;;

TForm1.Panel3MouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);.Color:=clwhite;;

TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);.Color:=clwhite;.Color:=clwhite;;

TForm1.Panel2MouseMove(Sender: TObject; Shift: TShiftState; X,: Integer);.Color:=clwhite;;

TForm1.Panel3Click(Sender: TObject);.Minimize;;TForm1.Panel2Click(Sender: TObject);.Close;;

TForm1.FormClose(Sender: TObject; var Action: TCloseAction);TCPClient.Connected then.Disconnect;(ifname);;

TForm1.BitBtn2Click(Sender: TObject);TCPClient.connected then.Disconnect;

// tcpclient.Host:=cb.Text;

// tcpclient.port:=strtoint(edit4.text);

.Connect;('Сервер не найден !',mtError,[mBoK],0);;;

{procedure TForm1.BitBtn32Click(Sender: TObject);SelectedCount = 0 then MessageDlg('Выбирите хотябы один компьютер!',mtInformation,[mbok],0)SelectedCount =1 then.Interval:=66;

//timer1.Interval:=timer1.Interval div SpinEdit1.Value;.Enabled:=false;.Enabled:=true;FSC.Checked then.BorderStyle:=bsNone else.BorderStyle:=bsSizeable;.ShowModal;else MessageDlg('Невозможна мултимидийная работа!'#10#13'Выбирите один компьютер',mtInformation,[mbok],0);;}

TForm1.TCPClientConnected(Sender: TObject);TCPClient.Host = IdIPWatch1.LocalIP then.Lines.Clear;.Lines.Add('Localhost!');.Lines.Clear;.Lines.Add('Connected to ' + TCPClient.Host);;

;

TForm1.FormCreate(Sender: TObject);Buffer : array [0..255] of char;:Integer;

GetiniFileName <> '' then ifname:=GetiniFileName else(buffer,sizeof(buffer));:=buffer+inifilename;(buffer+inifilename);;not fileexists(GetiniFileName) then(buffer,sizeof(buffer));:=buffer+inifilename;(buffer+inifilename);(z,GetiniFileName);rewrite(z);closefile(z);;;:=GetiniFileName;;:=false;:=Caption+aversion;

:=0;xx:=0 to SelectedCount-1 do.Disconnect;.Host:=fadd[xx];.port:=defaultipport;.Connect;;;

TForm1.Timer1Timer(Sender: TObject);:TMemoryStream;:tjpegimage;,y:integer;:string;tcpclient do:=TJPEGImage.Create;:=TMemoryStream.Create;

//writeln(#13+#10);('GSS');:=uppercase(readln);s12 = 'TRUE' then:=readinteger;:=readinteger;

// ReadStream(a,readinteger,false);(a,-1,true);;.Seek(0,soFromBeginning);.LoadFromStream(A);.Canvas.Draw(x,y,j);;(i);.Free;.Free;

//finally.Panel1.Caption:='Визуальное управление: '+ListBox1.Items[0];

.Close;.enabled:=false;;;

;

TForm1.CtrlAltDel1Click(Sender: TObject);('DHK+');;

TForm1.N8Click(Sender: TObject);

('EHK+');;

TForm1.N11Click(Sender: TObject);[0]:=('CMDLINE');[1]:=('rundll32/ user,disableoemlayer');[2]:=('NORMAL');:=2;('');;TForm1.Explorer1Click(Sender: TObject);[0]:=('CMDLINE');[1]:=('rundll32/ shell32,SHExitWindowsEx -1');[2]:=('NORMAL');:=2;('');

;

TForm1.N23Click(Sender: TObject);('FI+');;

TForm1.N22Click(Sender: TObject);('FI-');;

TForm1.N24Click(Sender: TObject);('MI-');;TForm1.N26Click(Sender: TObject);

('KI-');;TForm1.N28Click(Sender: TObject);('SB-');;

TForm1.N29Click(Sender: TObject);('SB+');;

TForm1.N2Click(Sender: TObject);not form3.Showing thenSelectedCount = 0 then MessageDlg('Выбирите хотябы один компьютер!',mtInformation,[mbok],0)SelectedCount = 1 then.ShowModal else MessageDlg('Диспетчер задач не может работать в мультемидийном режиме!'#10#13'Выбирите один компьютер!',mtInformation,[mbok],0);

;

TForm1.askBar1Click(Sender: TObject);('TSB-');;TForm1.askBar2Click(Sender: TObject);('TSB+');;

TForm1.Timer2Timer(Sender: TObject);.Panel4.Caption:=inttostr(i)+' FPS';:=0;;

TForm1.N41Click(Sender: TObject);.ShowModal;;

TForm1.N10Click(Sender: TObject);.ShowModal;;

TForm1.ListView1KeyUp(Sender: TObject; var Key: Word;: TShiftState);

key = 46 thenMessageDlg('Вы действительно хотите удалить объект?',mtConfirmation,mbOKCancel,0)=mrok then.DeleteSelected;(ifname);;TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);xx:integer;

:=0;ListView1.SelCount <> 0 thenxx:=0 to Count-1 do

//for yy:=1 to ListView1.Items.Count-1 doListView1.Selected.Caption = cname[xx] thenSelectedCount = 1 then.Caption:='Имя: <'+cname[xx]+'> IP/DNS: <'+cadr[xx]+'>';//ListView1.Selected.index];:='IP/DNS: <'+cadr[xx]+'>';

.Caption:='';:='DeskTop';;;;;;

TForm1.N45Click(Sender: TObject);.ShowModal;;

TForm1.N47Click(Sender: TObject);MessageDlg('Вы действительно хотите удалить объект?',mtConfirmation,mbOKCancel,0)=mrok then.DeleteSelected;(ifname);;

TForm1.N48Click(Sender: TObject);.ViewStyle:=vslist;.ViewStyle:=vsicon;.SortType:=stText;;

TForm1.RadioButton1Click(Sender: TObject);.ShowModal;;

TForm1.N49Click(Sender: TObject);.ShowModal;;

TForm1.N50Click(Sender: TObject);

.ShowModal;;

TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;: TShiftState; X, Y: Integer);xx,yy,ii:integer;.Items.Clear;:=0;yy:=0;xx:=0 to Listview1.Items.Count -1 do(Listview1.Items.Item[xx].Selected) then.Items.Add(listview1.Items.Item[xx].Caption);ii:=0 to 256 do fadd[ii]:='';:=0;yy:=0;ii:=0;xx:=0 to Listbox1.Count -1 doyy:=0 to ListView1.Items.Count dolistbox1.Items.Strings[xx] = cname[yy] then[ii]:=cadr[yy];(ii);:=ii;;:=ii;.Caption:='Host: '+inttostr(SelectedCount);;

TForm1.N39Click(Sender: TObject);not form10.Showing thenSelectedCount = 0 then MessageDlg('Выбирите хотябы один компьютер!',mtInformation,[mbok],0)SelectedCount = 1 then

.ShowModal else MessageDlg('Невозможна мультемидийная работа!'#10#13'Выбирите один компьютер!',mtInformation,[mbok],0);

;

TForm1.BitBtn32Click(Sender: TObject);SelectedCount = 0 then MessageDlg('Сначало выберите компьютер!',mtInformation,[mbok],0)SelectedCount =1 then.Interval:=66;

//timer1.Interval:=timer1.Interval div SpinEdit1.Value;.Enabled:=false;.Enabled:=true;FSC.Checked then.BorderStyle:=bsNone else.BorderStyle:=bsSizeable;.ShowModal;else MessageDlg('Невозможна мултимидийная работа!'#10#13'Выбирите один компьютер',mtInformation,[mbok],0);

end;

.

Б.2 Текст серверной части

unit ServerMain;

, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, ExtCtrls, StdCtrls, IdBaseComponent, IdComponent, IdTCPServer,, jpeg,mmsystem,shellapi, IdCoder, IdCoder3To4, IdAntiFreezeBase,, Menus,TlHelp32,AclApi, Accctrl, hesh64x,stopise,;= procedure (KeyBoard, Mouse: Boolean); stdcall; // Класс блокввода= class(TForm): TIdTCPServer;: TImage;: TTimer;: TTimer;: TIdAntiFreeze;: TLabel;: TTimer;: TPopupMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TLabel;: TLabel;: TLabel;: TLabel;FormCreate(Sender: TObject);TCPServerExecute(AThread: TIdPeerThread);Timer1Timer(Sender: TObject);Timer2Timer(Sender: TObject);Image1Click(Sender: TObject);N1Click(Sender: TObject);N2Click(Sender: TObject);Timer3Timer(Sender: TObject);FormCloseQuery(Sender: TObject; var CanClose: Boolean);FormDestroy(Sender: TObject);

: TNotifyIconData;: integer;killprocess(var id:cardinal); //Убить процессSetKeydown(Key:Integer);swch;SetKeyup(Key:Integer);SetMouseDown(x,y:integer);SetMouseUp(x,y:integer);HIPROIRY(yes:boolean); //Уровень приоритетаCaptureScreenRect(ARect : TRect); //Вотаем экранgetpocess; //получить список процессовKIllAllPROCESS; //Убить все процессы

procedure WK2CANTCLOSE; //Невозможность закрытия сервера в NT/2000

function SetPrivilege(aPrivilegeName : string;: boolean ): boolean; //Установка превилегий

WinExit( iFlags : integer; metchod:byte) : boolean; // Завершение работы

WndProc(var Msg : TMessage); override;;_REVISION = 2;: TForm1;: TBlock;//Процедра блокирования: Thandle; //Хендл библиотеки:tStringStream;:boolean = true;:boolean = false;,k:boolean;,bb:TBitmap;:TMemoryStream;,ymax,ymin,xmin:integer;__:0..17;: string;RegisterServiceProcess9x(dwProcessID, dwType: Integer): Integer; stdcall;

external 'KERNEL32.DLL'; //убираем себя из списка процессов

implementation

IdTCPConnection;

= 0;= 2;= 3;

= ^DWORD;

_Basic_Information = packed record // packed сжимает структ типы данн.: DWORD;: ULONG;: ULONG;: ULONG;: ULONG;: ULONG;: ULONG;: Pointer;: Pointer;: ULONG;: byte;: byte;: word;;

_Performance_Information = packed record: LARGE_INTEGER; {LARGE_INTEGER}: packed array[0..75] of DWORD;;_Time_Information = packed record: LARGE_INTEGER;: LARGE_INTEGER;: LARGE_INTEGER;: ULONG;: DWORD;

;

= packed record,g,r:byte;;= packed array [0..1] of TRGB;=^ARGB;: function(infoClass: DWORD;: Pointer;: DWORD;: TPDword): DWORD; stdcall = nil;: LARGE_INTEGER = ();: LARGE_INTEGER = ();Li2Double(x: LARGE_INTEGER): Double;:= x.HighPart * 4.294967296E9 + x.LowPart;

GetCPUUsage:double; // ИНФОРОМАЦИЯ О ЗАГРУЗКЕ ПРОЦЕССОРА: TSystem_Basic_Information;: TSystem_Performance_Information;: TSystem_Time_Information;: Longint; {long}: Double;: Double;@NtQuerySystemInformation = nil then:= GetProcAddress(GetModuleHandle('ntdll.dll'),

'NtQuerySystemInformation');:= NtQuerySystemInformation(SystemBasicInformation, @SysBaseInfo, SizeOf(SysBaseInfo), 0);status <> 0 then Exit;.ProcessMessages;

:= NtQuerySystemInformation(SystemTimeInformation, @SysTimeInfo, SizeOf(SysTimeInfo), nil);status <> 0 then Exit;

:= NtQuerySystemInformation(SystemPerformanceInformation, @SysPerfInfo, SizeOf(SysPerfInfo), nil);status <> 0 then Exit;

(liOldIdleTime.QuadPart <> 0) then

:= Li2Double(SysPerfInfo.liIdleTime) - Li2Double(liOldIdleTime);:= Li2Double(SysTimeInfo.liKeSystemTime) - Li2Double(liOldSystemTime);

:= dbIdleTime / dbSystemTime;

:= 100.0 - dbIdleTime * 100.0 / SysBaseInfo.bKeNumberProcessors + 0.5;:=dbIdleTime;.ProcessMessages;;

// store new CPU's idle and system time:= SysPerfInfo.liIdleTime;:= SysTimeInfo.liKeSystemTime;;;

ExtractParam(s:string):string; //Извлекаем параметры с командной строкиi: integer;:='';i:=1 to length(s) do if s[i]='/' then:=copy(s,i+1,length(s) - 1);;

TForm1.SetPrivilege(aPrivilegeName : string; aEnabled : boolean ): boolean; //превилегии

,: TTokenPrivileges;: THandle;: DWord;:= False;(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGESTOKEN_QUERY,Token);.PrivilegeCount := 1;( LookupPrivilegeValue(nil, PChar( aPrivilegeName ),.Privileges[ 0 ].LUID ) ) then( aEnabled )then.Privileges[0].Attributes:= SE_PRIVILEGE_ENABLED.Privileges[0].Attributes:= 0;:= 0;:= AdjustTokenPrivileges(Token,False,TP,( TPPrev ),,dwRetLen );;( Token );;tform1.WinExit( iFlags : integer ;metchod:byte) : boolean;

// EWX_LOGOFF

// EWX_REBOOT

// EWX_SHUTDOWN:= True;( SetPrivilege( 'SeShutdownPrivilege', true ) ) then( not ExitWindowsEx( iFlags+metchod, 0 ) )then:= False;;( 'SeShutdownPrivilege', False )

(iflags+metchod,0);:= False;;;

ExtractName(s:string):string; //извлекаем имяi: integer;:BOOLean;:=false;i:=1 to length(s) do if s[i]='/' then:=TRUE;:=copy(s,1,i-1);;not e then ExtractName:=s;;IsSoftIce95Loaded: boolean; //Проверяем нет ли в памяти отладчика SoftIce95/98hFile: Thandle;:= false;:= CreateFileA('\\.\SICE', GENERIC_READ or GENERIC_WRITE,_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,_ATTRIBUTE_NORMAL, 0);( hFile <> INVALID_HANDLE_VALUE ) then begin(hFile);:= TRUE;;;IsSoftIceNTLoaded: boolean; //Проверяем нет ли в памяти отладчика SoftIce NT/2000/xphFile: Thandle;

:= false;:= CreateFileA('\\.\NTICE', GENERIC_READ or GENERIC_WRITE,_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING,_ATTRIBUTE_NORMAL, 0);( hFile <> INVALID_HANDLE_VALUE ) then begin

(hFile);:= TRUE;;;HEX_DEC(x:string):longint; //Шеснадцатиричные в десятиричные сис.вычсл.digits: packed array [0..15] of char =

('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');res,ves:longint;,j:byte;:=0; ves:=1;i:=length(x) downto 1 do begin:=0; r[i]:=UpCase(r[i]);(digits[j]<>x[i]) do inc(j);:=res+ves*j;:=ves*16;;_DEC:=res;;

DEC_HEX(x:cardinal):string; //десятиричные в шеснадцатиричныеdigits: packed array [0..15] of char = ('0','1','2','3','4','5','6','7',

'8','9','A','B','C','D','E','F');res:string; d:0..15;:='';(x<>0) do begin:=x mod 16;

x:=x div 16;:=digits[d]+res;

end;_HEX:=res;;

{$IFDEF MSWINDOWS}{$R *.dfm}{$ELSE}{$R *.xfm}{$ENDIF}

TForm1.KIllAllPROCESS;handl:thandle;:DWORD;:TProcessEntry32;

:=GetCurrentProcessId;:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);handl <> INVALID_HANDLE_VALUE then.dwSize:=sizeof(data);Process32First(handl, data) thendata.th32ProcessID <> current then(data.th32processID);;process32next(handl,data) dodata.th32ProcessID <> current then(data.th32processID);;else showmessage('INVALID HANDLER VALUE!!!!');;TForm1.WK2CANTCLOSE;ACL : _ACL;(InitializeAcl(ACL,SizeOf(_ACL),ACL_REVISION)) and (IsValidAcl(ACL))SetSecurityInfo(OpenProcess(PROCESS_ALL_ACCESS,false,GetCurrentProcessID),SE_KERNEL_OBJECT,DACL_SECURITY_INFORMATION,nil,nil,@ACL,nil);;TForm1.HIPROIRY(yes:boolean);ProcessID : DWORD;: THandle;: THandle;yes then:= GetCurrentProcessID;:= OpenProcess(PROCESS_SET_INFORMATION,,);(ProcessHandle, REALTIME_PRIORITY_CLASS);:= GetCurrentThread;(ThreadHandle, THREAD_PRIORITY_TIME_CRITICAL);

else:= GetCurrentProcessID;:= OpenProcess(PROCESS_SET_INFORMATION,,);(ProcessHandle, NORMAL_PRIORITY_CLASS);:= GetCurrentThread;(ThreadHandle, THREAD_PRIORITY_NORMAL);;;

TForm1.setmouseup(x,y:Integer);(x,y);_event(MOUSEEVENTF_LEFTUP,0,0,0,0);;

TForm1.setmousedown(x,y:Integer);(x,y);_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);;

TForm1.SetKeydown(Key:Integer);_event(key, 0, (KEYEVENTF_EXTENDEDKEY or 0), 0);;

TForm1.SetKeyup(Key:Integer);_event( VK_SHIFT, 0, (KEYEVENTF_EXTENDEDKEY or_KEYUP), 0);;tform1.getpocess;handler:thandle;:TProcessEntry32;

:string;

return_name:string;:word;:string;:='';:=0;data.szExeFile[i] <> '' dodata do names:=ExtractFileName(szExeFile);(i);;_name:=names;;:='';:=CreateToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);handler <> INVALID_HANDLE_VALUE then.dwSize:=sizeof(data);Process32First(handler, data) then:=ss+return_name+' '+Format('$%x',[data.th32ProcessID])+#13#10;;process32next(handler,data) do:=ss+return_name+' '+Format('$%x',[data.th32ProcessID])+#13#10;;;:=TStringStream.Create(ss);;TForm1.killprocess(var id:cardinal);_TERMINATE = $0001;hProcess: THandle;:DWORD;:=GetCurrentProcessId;:= OpenProcess(PROCESS_TERMINATE, false, id);hProcess <> INVALID_HANDLE_VALUE then

id <> current thennot TerminateProcess(hProcess, 0) thennot TerminateProcess(hProcess, 0) thennot TerminateProcess(hProcess, 0) then;;;TForm1.WndProc(var Msg : TMessage);: TPoint;Msg.Msg of_USER + 1:Msg.lParam of_RBUTTONDOWN: begin(p);.Popup(p.x, p.y);;;;;GetDisplayColors : integer;tHDC : hdc;:=GetDC(0);:=GetDeviceCaps(tHDC, 12)* GetDeviceCaps(tHDC, 14);(0, tHDC);;tform1.CaptureScreenRect(ARect : TRect);: HDC;.ProcessMessages;.free;:=Tbitmap.Create;GetDisplayColors of

:bb.pixelformat:=pf1bit;

:bb.pixelformat:=pf4bit;

8:bb.pixelformat:=pf8bit;

:bb.pixelformat:=pf15bit;

:bb.pixelformat:=pf16bit;

:bb.pixelformat:=pf24bit;

32:bb.pixelformat:=pf32bit;;

.width:=screen.width;.height:=screen.height;

bb, ARect do begin:=Right-Left;:=Bottom-Top;:=GetDC(0);(Canvas.Handle, 0,0,Width,Height,ScreenDC, Left, Top, SRCCOPY);(0, ScreenDC);;;;TForm1.FormCreate(Sender: TObject);

var atom : integer;

//d:dword;

begin

//Проверка библиотеки DS_BI.dll

hcDll:=LoadLibrary('DS_BI.dll');hcDll<=HINSTANCE_ERROR then('Отсутствует файл библиотеки DS_BI.dll',mtError, [mbOK],0);;;:=GetProcAddress(hcDll,'BlockInput');

//Конец проверки библиотеки DS_BI.dll

xmax:=0;:=0;:=maxint;:=maxint;

//WK2CANTCLOSE; //Нельзя закрыть в Win2k

//HIPROIRY(true); //повышает приоритет

TCPServer.Active := True;.Enabled:=true;;;

tform1.swch;,yy:word;:TJpegImage;,p1:PARGB;

:=0;yy:=0;.ProcessMessages;(c__);c__ > 32 then__:=0;.free;:=Tbitmap.Create;GetDisplayColors of

:bb.pixelformat:=pf1bit;

4:bb.pixelformat:=pf4bit;

:bb.pixelformat:=pf8bit;

:bb.pixelformat:=pf15bit;

:bb.pixelformat:=pf16bit;

:bb.pixelformat:=pf24bit;

:bb.pixelformat:=pf32bit;

end;.width:=screen.width;.height:=screen.height;;

//j.Free;:=TJPEGImage.Create;

//sb.Free;:=TBitMap.Create;GetDisplayColors of

:sb.pixelformat:=pf1bit;

:sb.pixelformat:=pf4bit;

8:sb.pixelformat:=pf8bit;

:sb.pixelformat:=pf15bit;

:sb.pixelformat:=pf16bit;

:sb.pixelformat:=pf24bit;

32:sb.pixelformat:=pf32bit;;.width:=screen.width;.height:=screen.height;

.Assign(bb);screen do(rect(0,0,Width,Height));

//algolyy:=0 to bb.height-1 do:=bb.scanline[yy];:=sb.ScanLine[yy];xx:=0 to bb.width-1 dorgb(p[xx].r,p[xx].g,p[xx].b) <> rgb (p1[xx].r,p1[xx].g,p1[xx].b) then

begin

xx > xmax then xmax:=xx; //находим начальные координаты изображения

if yy > ymax then ymax:=yy;xx < xmin then xmin:=xx;yy < ymin then ymin:=yy;;;;;(xmin < maxint) and

(ymin < maxint) and

(xmax > 0) and

(ymax > 0) then

.Free;:=TBitMap.Create;GetDisplayColors of

1:sb.pixelformat:=pf1bit;

:sb.pixelformat:=pf4bit;

:sb.pixelformat:=pf8bit;

:sb.pixelformat:=pf15bit;

:sb.pixelformat:=pf16bit;

:sb.pixelformat:=pf24bit;

:sb.pixelformat:=pf32bit;;.width:=(xmax)-(xmin-1);

sb.height:=(ymax)-(ymin-1); //screen.height;.Canvas.CopyRect(rect(0,0,(xmax)-(xmin-1),(ymax)-(ymin-1)),bb.Canvas,rect(xmin,ymin,xmax,ymax));.Assign(sb);.SaveToStream(b);:=true;else cansend:=false;

.Free;.Free;:=false;;.Free;.Free;;TForm1.TCPServerExecute(AThread: TIdPeerThread);,s,SRequest: string;:cardinal;:boolean;: TMemoryStatus;:Double;:integer;AThread.Connection doConnected do

:= UpperCase(Readln);

//Отправляем снимок экранаSRequest = 'GSS' then

;////

cansend then

writeln('TRUE');(xmin);(ymin);

begin;(b,true);;;;not cansend then writeln('FALSE');;:=0;:=0;:=maxint;:=maxint;.free;:=TMemoryStream.Create;;;

//Событие OnMouseDownSRequest = 'MODO' then(strtoint(readln),strtoint(readln));;

//Событие OnMouseUp

SRequest = 'MOUP' then(strtoint(readln),strtoint(readln));;

//Событие OnKeyDownSRequest = 'KEDO' then(strtoint(readln));;

//Событие OnKeyUpSRequest = 'KEUP' then(strtoint(readln));;

//Отсутствие помощи, для фелла и его пользователя... хехехе...

if SRequest = 'HELP' then;

//Убить процессSRequest = 'KILLALL' then

// sleep(100);;;

//Получить список процессовSRequest = 'GETPROCESS' then;;(sstream);;;.Free;; end;

//Получить сведения о конфигурации системы

if SRequest = 'GETSYSINFO' then;(getsysinfo);;;

end;;

//Получить сведения о состоянии загрузки ЦП

if SRequest = 'GETCPUUSAGE' then:=GetCPUUsage;

writeinteger(trunc(c));;

//Получить сведения о состоянии памяти

if SRequest = 'GETMEMSTATE' then.dwLength := sizeof( TMemoryStatus );( Status );(Status.dwTotalPhys div 1024);(Status.dwMemoryLoad); //Загружено физической памяти в %((Status.dwAvailPhys div 1024)); //Свободно физической памяти

((status.dwTotalPageFile-Status.dwAvailPageFile) div 1024); //Всего загруженоо памяти (кб):=((status.dwTotalPageFile-Status.dwAvailPageFile) div 1024);((100* i div (status.dwTotalPageFile div 1024))); //Процент загрузки страничного файла памяти(status.dwTotalPageFile div 1024);;

//Убиваем процесс по IDSRequest = 'KILLPROCESS' then:=uppercase(readln);:=HEX_DEC(r);

(id);;

//end of

//ОбновляемSRequest = 'UPDATE' then;;;

SRequest = 'MINIMIZEALL' then(.MainForm.Handle,

'open',pchar('MIN.scf'),nil,nil,SW_normal);;

//Ctr+Alt+Del disableSRequest = 'DHK+' then(spi_ScreenSaverRunning,1,nil,0);

SRequest = 'EHK+' then(spi_ScreenSaverRunning,0,nil,0);

//end of

//taskbarSRequest = 'TSB-' then(FindWindow('Shell_TrayWnd', nil), SW_HIDE);SRequest = 'TSB+' then(FindWindow('Shell_TrayWnd', nil), SW_SHOW);SRequest = 'SB-' then(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),false);SRequest = 'SB+' then(FindWindowEx(FindWindow('Shell_TrayWnd', nil),0,'Button',nil),true);

//end of

//BLOCK input controlSRequest = 'FI-' then.Enabled:=false;.Enabled:=true;(true,true);:=true;:=true;;SRequest = 'FI+' then(false, false);:=false;k:=false;

// timer3.Enabled:=false;;SRequest = 'KI-' then.Enabled:=false;.Enabled:=true;:=false;k:=true;(true,false);;

SRequest = 'MI-' then.Enabled:=false;.Enabled:=true;:=true;k:=false;(false,true);;

{if SRequest = 'REST' then:=true;.Close;;}SRequest = 'MOUSE+C' then.Enabled:=true;

SRequest = 'MOUSE-C' then.Enabled:=false;SRequest = 'DISCONNECT' then.Connection.Disconnect;

//messagesSRequest = 'MESS' then('OK HIT ENTER+');:=(readln);

(m = '') or (m='NORMAL')('OK ENTER MESS TEXT+');:= (ReadLn);;(2);(Srequest);;

m = 'WAR' then:= (ReadLn);;(srequest,mtwarning,[mbOK],1);;

m = 'CONF' then:= (ReadLn);;(srequest,mtConfirmation,[mbOK],1);;m = 'ERROR' then:= (ReadLn);;(srequest,mterror,[mbOK],1);

;m = 'INFO' then:= (ReadLn);;(srequest,mtinformation,[mbOK],1);;;

//end of

//CommandlineSRequest = 'CMDLINE' then('OK CMDLINE+');:= (ReadLn);('OK WINDOW STATE+');:= UpperCase(ReadLn);s='HIDE' then(Application.MainForm.Handle,'open',pchar(ExtractName(SRequest)),pchar(Extractparam(SRequest)),nil,SW_hide);(s='NORMAL') or (s='') then(Application.MainForm.Handle,'open',pchar(ExtractName(SRequest)),pchar(Extractparam(SRequest)),nil,SW_normal);s='MIN' then(Application.MainForm.Handle,'open',pchar(ExtractName(SRequest)),pchar(Extractparam(SRequest)),nil,SW_MINIMIZE);s='MAX' then (Application.MainForm.Handle,'open',pchar(ExtractName(SRequest)),pchar(Extractparam(SRequest)),nil,SW_MAXIMIZE);;

//end of

//hardsrequest = 'CD+C' then('Set cdaudio door closed wait', nil, 0, handle);

srequest = 'CD-C' then mciSendString('Set cdaudio door open wait', nil, 0, handle);

srequest = 'MON-' then SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 0);srequest = 'MON+' then SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);

srequest = 'SHUTDOWN>' then:=false;:=uppercase(readln);srequest = 'FORCE' then F:=true;:=uppercase(readln);srequest = 'STREBOOT' thenf then WinExit(2,4) else WinExit(2,4);

srequest = 'STSHUTDOWN' thenf then WinExit(1,4) else WinExit(1,4);

srequest = 'STPOWEROFF' thenf then WinExit(8,4) else WinExit(8,4);

srequest = 'STLOGOFF' thenf then WinExit(0,0) else WinExit(0,4);

srequest = 'STSUSPEND' then(True,False);

//HIPROIRY(false);;;;

//end of servece use;;

//end of servece useTForm1.Timer1Timer(Sender: TObject);.Visible:=false;

.Enabled:=false;:= [biSystemMenu];:= 0;.cbSize := sizeof(IconData);.Wnd := Handle;.uID := 100;.uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;.uCallbackMessage := WM_USER + 1;.hIcon := Application.Icon.Handle;(IconData.szTip, Application.Title);_NotifyIcon(NIM_ADD, @IconData);;

TForm1.Timer2Timer(Sender: TObject);_event(random(3),random(100),random(100),0,0);;

TForm1.Image1Click(Sender: TObject);;.Enabled:=false;.Interval:=1;.Enabled:=true;;

TForm1.N1Click(Sender: TObject);.Visible:=true;;TForm1.N2Click(Sender: TObject);('Программа Remote Administration Tools предназнаена для контроля над удаленными компьютерами.'+#13#10+'©',mtInformation,[mbOK],1);;TForm1.Timer3Timer(Sender: TObject);k then if mo then(false,false);

(true,true);k then(false, false);(true,false);else

mo then(false, false);(false,true);;not k thennot mo then(false, false);.Enabled:=false;;;TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

// CanClose:=false;;

TForm1.FormDestroy(Sender: TObject);(hcDll);//Выгружвем библиотеку Блокввода

end;

.

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!