Вход

расработка автоматизированной системы обеспечения информационной безопасности электронной коммерции в онлайн-банке ООО

Рекомендуемая категория для самостоятельной подготовки:
Дипломная работа*
Код 71007
Дата создания 2013
Страниц 125
Источников 35
Мы сможем обработать ваш заказ (!) 22 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
7 280руб.
КУПИТЬ

Содержание


Содержание
ВВЕДЕНИЕ 5
I АНАЛИТИЧЕСКАЯ ЧАСТЬ 7
1.1 Технико-экономическая характеристика предметной области и предприятия. Анализ деятельности «КАК ЕСТЬ» 7
1.1.1 Характеристика предприятия и его деятельности 7
1.1.2 Организационная структура управления предприятием 9
1.1.3 Программная и техническая архитектура ИС предприятия 10
1.2 Характеристика комплекса задач, задачи и обоснование необходимости автоматизации 15
1.2.1 Выбор комплекса задач автоматизации и характеристика существующих бизнес процессов 15
1.2.2 Определение места проектируемой задачи в комплексе задач и ее описание 18
1.2.3 Обоснование необходимости использования вычислительной техники для решения задачи 18
1.3 Анализ существующих разработок и выбор стратегии автоматизации «КАК ДОЛЖНО БЫТЬ» 28
1.3.1 Анализ существующих разработок для автоматизации задачи 28
1.3.2 Выбор и обоснование стратегии автоматизации задачи 41
1.3.3 Выбор и обоснование способа приобретения ИС для автоматизации задачи 42
1.4 Обоснование проектных решений 44
1.4.1 Обоснование проектных решений по информационному обеспечению 44
1.4.2 Обоснование проектных решений по программному обеспечению 44
1.4.3 Обоснование проектных решений по техническому обеспечению 51
II ПРОЕКТНАЯ ЧАСТЬ 53
2.1 Разработка проекта автоматизации 53
2.1.1 Этапы жизненного цикла проекта автоматизации 53
2.1.2 Ожидаемые риски на этапах жизненного цикла и их описание 55
2.1.3 Организационно-правовые и программно-аппаратные средства обеспечения информационной безопасности и защиты информации 56
2.2 Информационное обеспечение задачи 66
2.2.1 Информационная модель и её описание 66
2.2.2 Характеристика нормативно-справочной, входной и оперативной информации 67
2.2.3 Характеристика результатной информации 68
2.3 Программное обеспечение задачи 68
2.3.1 Общие положения (дерево функций и сценарий диалога) 68
2.3.2 Характеристика базы данных 72
2.3.3 Структурная схема пакета (дерево вызова программных модулей) 73
2.3.4 Описание программных модулей 74
2.4 Контрольный пример реализации проекта и его описание 74
III ОБОСНОВАНИЕ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ПРОЕКТА 77
3.1 Выбор и обоснование методики расчёта экономической эффективности 77
3.2 Расчёт показателей экономической эффективности проекта 85
ЗАКЛЮЧЕНИЕ 94
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 97
Приложение А. Листинг программы 101

Фрагмент работы для ознакомления

час. Занятые
исполнители Доля выполняемых работ, % Трудоемкость по исполнителям, чел. час. 1. Подготовительная стадия 48 Инженер-программист 100 48 2. Теоретическая разработка 37 Инженер-программист 100 37 3. Алгоритмизация и программирование 240 Инженер-программист 100 240 4. Обобщение и выводы 18 Инженер-программист 100 18 5. Техническая отчетность 18 Инженер-программист 100 18 6. Заключительная стадия 7 Инженер-программист 100 7
Среднемесячный должностной оклад инженера-программиста – 24000 рублей. Среднедневные показатели по формуле 11 составят:
инженера-программиста 24000 : 20,8=1153,85 руб.
По данным таблицы 3.3 определим время занятости специалиста на разработку программного продукта.
Т дней инженера-программиста =(48+37+240+18+18+7):8 час = 368:8=46 рабочих дня.
Т календарных дней работы инженера-программиста =368 1,2/(0,73×8) = 76 календарных дней.
Затраты на заработную плату состоят из зарплаты инженера-программиста, основная зарплата 1153,85 руб.76 дней = 87692,6 руб.
Отчисления на социальные нужды 26,2% от 87692,6 рублей или 87692,626,2/100 = 22975,46 руб.
Величина накладных расходов при создании приложении составляет 120% от основной заработной платы, следовательно:
120% от 87692,6 руб.=105231,15 руб.
Для проектирования и отладки программ используется ПК, для обслуживания которого нужен специалист, заработная плата которого составляет 15000 руб. в месяц.
Один наладчик обслуживает 6 ПК с периферией. Таким образом, финансовые затраты на зарплату при эксплуатации одного ПК в месяц составляют – 15000:6= 2500 руб.
В год – 2500 × 12= 30000 руб.
Отчисления на социальные нужды 30000 × 0,262=7860 руб.
Первоначальная стоимость ПЭВМ с периферией – 25000 рублей.
Срок полезного использования (службы) ПЭВМ – 5 лет.
Норма амортизационных отчислений по формуле (3.13) составит:
НА = 100% : 5 лет = 20% в год.
Амортизационные расходы составляют:
А= 25000 × 20% : 100% = 5000 руб. в год.
Необходимо определить сумму амортизационных отчислений, относимых на программный продукт.
Эту сумму амортизационных отчислений можно определить после расчета продолжительности затрат машинного времени на разработку программного продукта (таблица 3.4).
Для разработки программного продукта необходимо затратить определенное количество часов машинного времени, расчет которого произведен в таблице 3.4.
Таблица 3.4 – Использование машинного времени на различных стадиях создания приложения
Наименование стадии Трудоемкость, чел. часов Доля работ, вып. на комп.,
% Необходимое
машинное время, час. Стадия подготовки 48 20 10 Изучение теоретических основ 37 10 4 Составление алгоритмов и разработка программного кода –изучение и описание задачи 10 10 1 –разработка алгоритмов 20 – – – разработка блок-схем 20 10 2 –создание программного кода 100 50 50 –отладка 40 100 40 –расчеты 20 100 20 –оформление документации 30 20 6 Обобщение и выводы 18 10 2 Техническая отчетность 18 20 4 Заключительная стадия 7 40 3 Всего: 142
Годовой фонд машинного времени составляет Фд = 12 мес. × 250 раб. дней × 8 час=24000 час. Затраты машинного времени на разработку программного продукта составляют 142 час. Таким образом, сумма амортизационных отчислений, относимых на программный продукт, составляет
5000 руб. : 24000 час × 142 час.= 30 руб.
Необходимо определить себестоимость одного часа машинного времени.
Затраты на заработную плату наладчика
30000 руб./год : (250×8) ×142=2130 руб.
Отчисления на социальные нужды 26,2 % от 2130 руб. = 558,06 руб.
Затраты на электроэнергию определяются принимаем 3 эл. эн = 400 руб.
Затраты на использование машинного времени:
3атраты маш. вр = 2130 + 558,06 + 400 = 3088,06 руб.
При разработке программного продукта предполагается использовать:
500 листов бумаги для принтера формата А4 (1 пачка) стоимостью 200 рублей за пачку; стоимость бумаги 200×1 = 200 руб.;
один картридж для принтера марки HP1100 (черно-белый) стоимостью 2000 рублей.
Общая сумма затрат на разработку программного продукта составит:
Заработная плата инженера-программиста – 87692,6 руб.
Отчисления на социальные нужды – 22975,46 руб.
Накладные расходы – 105231,15 руб.
Амортизационные отчисления – 30 руб.
Затраты на машинное время –3088,06 руб.
Расходы на материалы – 2200 руб.
Всего затрат – 221217,27 руб.
Для расчета эффективности примем, что без использования АС сотрудник может обработать 10 документов, при ее использовании – 50.
Заработная плата специалиста по обработке документов составляет 20000 руб. в месяц. Тогда по формуле (3.17) считая, что N0 равняется 10 документам, найдем
С1= 20000 : (10 × 20,8) = 96,15 руб. за 1 документ
Тогда по формуле (3.18) считая, что N1 равняется 50 документам, найдем
С2= 20000 : (50 × 20,8) = 19,23 руб. за 1 документ
К капитальным затратам отнесены текущие годовые затраты на электроэнергию ~ 4800 руб.
К уд. 1 = 4800 : (10×20,8×12) = 1,92 руб.
Удельные капитальные вложения при использовании программного продукта:
К уд. 2= 221217,27: (50×20,8×12) = 17,73 руб.
Приведенные затраты составят:
З1= 96,15 +0,32×1,92=96,76 руб.
З2= 19,23 +0,32×17,73 =24,90 руб.
Планируемый годовой объем документооборота:
Qгод =40 20,8×12 = 9984 документа.
Годовой экономический эффект от внедрения программного продукта:
Эгод. = (96,76 -24,90) ×9984 = 717450,24 руб.
Срок окупаемости капиталовложений составит:
Ток = 221217,27: 717450,24 = 0,31 года или 12мес. × 0,31 ( 4 месяца.
Найдем Еэф по формуле (3.20)
Еэф = = 3,22
Таким образом, Еэф при внедрении программного продукта равно 3,22 > Еэф норм = 0,32;
Срок окупаемости при внедрении программного продукта не более 4 месяцев < Ток норм = 3 года, следовательно, внедрение программного продукта экономически эффективно и целесообразно.
Заключение
Объектом исследования в дипломной работе является ООО «Росбанк», частный универсальный банк в составе международной банковской группы Societe Generale, оказывающий все виды услуг частным и корпоративным клиентам. Защита информации является важной задачей, которую должны решать специалисты банка. В работе приведена его организационная структура, которая является линейно-функциональной. Под организационной структурой понимается структура, которая отвечает за все протекающие на предприятии бизнес-процессы, взаимосвязи и области ответственности сотрудников, а также определяет путь к получению конечного результата деятельности.
ГОСТ Р 50922-96 «Защита информации. Основные термины и определения» устанавливает основные термины и их определения в области защиты информации. Защита документированной информации в документопотоках обеспечивается комплексом разнообразных мер режимного, технологического, аналитического и контрольного характера.
Аудит ИБ организации позволяет оценить состояние защиты информации на предприятии. Аудит может проводиться как собственными работниками предприятия, и сотрудниками лицензированных аудиторских фирм.
Комплексность как принцип оценки эффективности защиты означает необходимость: установления содержания проверяемых мер и средств; оценки организационно-режимных мероприятий; проверки категории объекта; проверки эффективности защиты информации; проверки воспрещения несанкционированного доступа; составления акта комплексной проверки; разработки рекомендаций по совершенствованию защиты.
Для обеспечения безопасности данных клиента при пользовании системами Интернет-банкинга необходима установка на компьютере и регулярное обновление антивирусных программ.
В настоящее время на российском рынке для обеспечения ИБ имеется много программных продуктов. Разработчиком трех рассмотренных программ является ООО «Атом Безопасность» (г. Новосибирск).
StaffCop Home Edition предусматривает контроль домашнего компьютера, предназначен для работы на одном ПК, возможность подключения агента к административной панели по локальной сети отсутствует.
StaffCop Standard проводит мониторинг деятельности пользователей ПК и контроль информационной безопасности предприятия, идеален как для малого, так и крупного бизнеса.
Security Curator обеспечивает информационную безопасность компании с расширенными функциями блокировки программ и процессов, а также имеет систему уведомления о нарушении политик безопасности, предназначен для среднего и крупного бизнеса.
В работе отмечается, что возможность применения работодателем программного обеспечения, имеющего функции контроля за использованием работниками рабочих компьютеров и сети Интернет в процессе их трудовой деятельности, не противоречит действующему законодательству РФ.
При рассмотрении предметной области был выявлен бизнес-процесс, подлежащий автоматизации. Он связан с регистрацией событий, происходящих на ПК сотрудников банка, так как анализ действий персонала имеет важное значение для ИБ организации.
Основу любой информационной системы составляет БД, т.е. набор данных, организованных специальным образом. В ходе проектирования было дано обоснование выбора среды разработки (Borland Delphi 7) и БД (Microsoft Access).
В ходе дипломного проектирования было создано прикладное приложение, позволяющее осуществлять мониторинг событий на ПК сотрудника организации. В разработанной программе реализована запись и просмотр следующих событий:
мониторинг посещений Интернет-ресурсов;
вставка и извлечения USB-устройств;
проверка списка ПК в ЛВС с учетом времени появления ПК в сети.
Разработанная программа представляет собой загрузочный файл с именем mlan.exe. Установки приложения не требуется, БД также создается при запуске приложения в случае ее отсутствия.
Интерфейс пользователя представляет собой многостраничную форму. Вызов нужной формы определяется выбором пункта меню в верхней части формы. После активизации вкладки возможен переход на нее с сохранением ранее выбранного временного промежутка и результатов отображения информации.
Реализованные в дипломном проекте контрольные примеры показали корректную работу приложения. Цель дипломного проектирования достигнута, так как разработанная система соответствует предъявленным требованиям, выполняет функции мониторинга событий на ПК сотрудников, позволяет менеджерам получать выходные документы в виде файла формата Microsoft Excel.
В дипломном проекте работе сделан технико-экономический расчет эффективности разработки системы, рассчитаны затраты труда на разработку, определена общая продолжительности ее разработки, а также общая сумма затрат на разработку, которая составляет около двухсот двадцати тысяч рублей. Срок окупаемости при внедрении БД составит не более 4 месяцев.
Простой набор мер и средств защиты информации нейтрализует лишь отдельные угрозы ее безопасности, оставляя бреши в обороне. Только постоянно развивающаяся система ИБ может сдержать натиск непрерывно совершенствующихся средств и методов негласного съема информации.
Список использованной литературы
Арустамов, Э.А. Охрана труда: Справочник / Э. А. Арустамов. – М.: Издательско-торговая корпорация «Дашков и К», 2008. – 588 с. – ISBN 978-5-91131-551-1.
Архангельский, А.Я. Программирование в Delphi 7 / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN   5-9518-0042-0.
Архангельский, А.Я. Delphi 2006. Справочное пособие. Язык Delphi, классы, функции Win32 и .NET / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN   5-9518-0138-9.
Бакнелл, Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл – СПб.: Питер, 2006. – 560 с. – ISBN 5-469-01495-9, 5-93772-087-3.
Безопасность жизнедеятельности: Учебник для вузов. / С. В. Белов, А. В. Ильницкая, А. Ф. Козьяков и др.; Под общ. редакцией С. В. Белова. – М.: Высшая школа, 2007.– 616 с. – ISBN 978-5-06-004171-2.
Бобровский, С.И. Delphi 7. Учебный курс / С.И. Бобровский – СПб.: Питер, 2008. – 736 с.: ил. – ISBN 978-5-8046-0086-1.
Бузов, Г.А., Калинин С.В., Кондратьев А.В. Защита от утечки информации по техническим каналам. / Г.А. Бузов, С.В. Калинин, А.В. Кондратьев. – М.: Горячая линя-Телеком, 2005. – 416 с. – ISBN 5-93517-204-6.
Грабауров, В. А. Информационные технологии для менеджеров / В.А. Грабауров – М.: Финансы и статистика, 2001. – 368 с.: ил. ISBN 5-279-02299-3.
Грабер, М. Введение в SQL: Самое простое введение в SQL с полезными примерами и пробными объяснениями и др. / Пер. с англ. В. Ястребов – Издательство «Лори», 2008. – 375 с. – ISBN – 5-85582-010-6.
Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П.Г. Дарахвелидзе, Е. П. Марков. – СПб.: БХВ-Петербург, 2003. – 784 с. – ISBN 5-94157-116-Х.
Занько, Н.Г., Малаян, К.Р., Русак, О.Н. Безопасность жизнедеятельности. Учебник. 13-е изд., испр. / Н. Г. Занько, К.Р. Малаян, О.Н. Русак: Под ред. О. Н. Русака. – СПб.: Лань, 2010. – 672 с.: ил. – ISBN 978-5-8114-0284-7.
Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец – СПб.: Наука и техника, 2006. – 384 с. – ISBN 5-94387-269-8, 80-251-0017-0.
Карпов, Б. Delphi: специальный справочник / Б. Карпов – СПб.: Питер, 2002. – 688 с.: ил. – ISBN 5-272-00353-5.
Коннолли, Т., Бегг, К., Страчан, А. Базы данных: Проектирование, Реализация и сопровождение. Теория и практика / Т. Коннолли, К. Бегг, А. Страчан – М.: Вильямс, 2003. – 1436 с. – ISBN 5-8459-0527-3, 0-201-70857-4.
Корнеев, И.К., Степанова, И.А. Защита информации в офисе. / И.К. Корнеев, И.А. Степанова. – М.: ТК ВЕЛБИ, Проспект, 2008 г. – 336 с. – ISBN 978-5-482-01976-4.
Криптографическая защита информации: учебное пособие / А.В. Яковлев, А.А. Безбогов, В.В. Родин, В.Н. Шамкин. – Тамбов: Изд-во ТАМБ. ГОС. ТЕХН. УН-ТА, 2006. – 140 с. – ISBN 5-8265-0503-6.
Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. – 2-е изд., стер. – М.: Издательский центр «Академия», 2008. – 320 с. ISВN 978-5-7695-4833-8.
Малюк, А. А. Информационная безопасность: концептуальные и методологические основы защиты информации. Учеб. пособие для вузов. – М: Горячая линия-Телеком, 2004. – 280 с. ил. – ISBN 5-93517-197-Х.
Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник / А.С. Марков, К.Ю. Лисовский – М.: Финансы и статистика, 2006. – 512 с: ил. – ISBN 5-279-02298-5.
Мельников В. П. Информационная безопасность и защита информации: учеб. пособие для студ. высш. учеб. заведений / В. П. Мельников, С.Л. Клейменов, Л. М. Петраков; под. ред. С.Л. Клейменова. – М.: Издательский центр «Академия», 2005. – 336 с. – ISBN 978-5-7695-4884-0.
Михеева, Е.В. Информационные технологии в профессиональной деятельности: учеб. пособие. – М.: ТК Велби, Изд-во Проспект, 2007. – 448 с. – ISBN 978-5-482-01569-8.
Основы защиты информации. / А.И. Куприянов, А.В. Сахаров, В.А. Шевцов. – М.: Академия, 2006. – 256 с. – ISBN 5-7695-2438-3.
Основы информационной безопасности. / Е.Б. Белов, В.П. Лось, Р.В. Мещеряков, А.А. Шелупанов. – М.: Горячая линя-Телеком, 2006. – 544 с. – ISBN 5-93517-292-5.
Панасенко, С. П. Алгоритмы шифрования. Специальный справочник / С.П. Панасенко – СПб.: БХВ-Петербург, 2009. – 576 е.: ил. – ISBN 978-5-9775-0319-8.
Скляров, Д. В. Искусство защиты и взлома информации. / Д.В. Скляров. – СПб.: БХВ-Петербург, 2004. – 288 с.: ил. – ISBN 5-94157-331-6.
Стивенс, Р. Delphi. Готовые алгоритмы / Р. Стивенс – М.: ДМК Пресс; СПб.: Питер, 2004. - 384 с.: ил. – ISBN 5-94074-202-5.
Фленов, М.Е. Библия Delphi. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 880 с. – ISBN 5-94157-456-8.
Фленов, М.Е. Программирование в Delphi глазами хакера. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 368 с.: ил. – ISBN 5-94157-351-0.
Хармон, Э. Разработка COM-приложений в среде Delphi / Э. Хармон – Вильямс, 2000. – 464 с.: ил. – ISBN 5-8459-0074-3, 1-57870-221-6.
Цирлов, В. Л. Основы информационной безопасности автоматизированных систем / В. Л. Цирлов. – М.: Феникс, 2008. – 172 с. – ISBN 978-5-222-13164-0.
Чекмарев, Ю. В. Локальные вычислительные сети. Издание второе, испр. и доп. / Ю. В. Чекмарев. – М.: ДМК Пресс, 2009. – 200 с.: ил. – ISBN 978-5-94074-460-3.
Черняков, М.В. Петрушин, А.С. Основы информационных технологий. Учебник для вузов. / М.В. Черняков, А.С. Петрушин. – М.: ИКЦ «Академкнига», 2007. – 406 с. – ISBN: 978-5-94628-273-4.
Шумаков, П.В. Delphi 3 и разработка приложений баз данных / П.В. Шумаков. – М.: Нолидж, 1999. – 704 с.: ил. – ISBN 5-89251-022-0.
Шпак, Ю. А. Delphi 7 на примерах / Ю. А. Шпак. – М.: Юниор, 2003. – 344 с. – ISBN 966-7323-28-5.
Ярочкин, В. И. Информационная безопасность: Учебник для студентов вузов. / В. И. Ярочкин. – М.: Академический Проект; Гаудеамус, 2-е изд., 2004. – 544 с. – ISBN 5-8291-0408-3, 5-98426-008-5.
Приложение А. Листинг программы
{
Среда разработки - Delphi 7. Дополнительные компоненты не используются.
Разрабатываемая программа будет находится в трее.
Информация о происходящих событиях будет записываться в таблицы базы данных Access.
В случае отсутствия базы данных файл с расширением mdb будет создаваться автоматически в каталоге с исполняемым модулем.
Из событий, происходящих в ЛВС, планируется реализовать: время вставки и удаления флеш-накопителя,
время посещения сайтов указанием их адреса в сети Интернет.
Результат работы пользователя за указанный период времени может быть сохранен в виде файла формата xls.
}
unit monit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ShellAPI, ExtCtrls, StdCtrls, ADODB, DB, Grids, DBGrids,
Spin, Buttons,
DateUtils, OleCtrls, SHDocVw, ComCtrls,
Activex, Comobj, CommCtrl ;
type
TForm1 = class(TForm)
PopupMenu: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
Image1: TImage;
Image2: TImage;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
Timer1: TTimer;
MainMenu1: TMainMenu;
N3: TMenuItem;
N12: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
Panel1: TPanel;
Label1: TLabel;
SpinEdit1: TSpinEdit;
ComboBox1: TComboBox;
LBdisk: TListBox;
Panel2: TPanel;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
N4: TMenuItem;
Label2: TLabel;
DBGrid1: TDBGrid;
StatusBar1: TStatusBar;
ADODataSet1: TADODataSet;
N5: TMenuItem;
Panel3: TPanel;
Label3: TLabel;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
ADODataSet2: TADODataSet;
DataSource2: TDataSource;
DBGrid2: TDBGrid;
N6: TMenuItem;
N7: TMenuItem;
StatusBar2: TStatusBar;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
CheckBox1: TCheckBox;
N13: TMenuItem;
TabSheet4: TTabSheet;
Panel4: TPanel;
Label4: TLabel;
DateTimePicker5: TDateTimePicker;
DateTimePicker6: TDateTimePicker;
N14: TMenuItem;
N15: TMenuItem;
Excel1: TMenuItem;
DBGrid3: TDBGrid;
DataSource3: TDataSource;
ADODataSet3: TADODataSet;
StatusBar3: TStatusBar;
function Col_name(i_col:Integer):String;
procedure excel_array(QQ:TDataSet;Page_Orientation:Integer;Title_Excel:String;Header_Excel:TStringList);
function FileTimeToDt(Ft: TFileTime): TDateTime;
function StringToPWide(sStr: string; var iNewSize: integer): PWideChar;
procedure CreateMSAccessDB(filename : String);
procedure IconCallBackMessage( var Mess : TMessage ); message WM_USER + 100;
procedure WMSYSCOMMAND(var msg: TMessage); message WM_SYSCOMMAND;
procedure VisitURL;
function GetComputerNetName: string;
procedure List_computer;
procedure EnumRec(start:PNetResource; lev:LongInt);
//function FindComputers: DWORD;
//procedure FillCompList(aArr : TStrings; FromResources : Pointer);
procedure FormCreate(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Timer1Timer(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure DBGrid1DblClick(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure FormResize(Sender: TObject);
procedure DataSource2DataChange(Sender: TObject; Field: TField);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure SpinEdit1Change(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure Excel1Click(Sender: TObject);
procedure DataSource3DataChange(Sender: TObject; Field: TField);
procedure DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
private
{ Private declarations }
public
nid : TNotifyIconData;
eventlan : Boolean;
{ Public declarations }
end;
const
STATURL_QUERYFLAG_ISCACHED = $00010000;
STATURL_QUERYFLAG_NOURL = $00020000;
STATURL_QUERYFLAG_NOTITLE = $00040000;
STATURL_QUERYFLAG_TOPLEVEL = $00080000;
STATURLFLAG_ISCACHED = $00000001;
STATURLFLAG_ISTOPLEVEL = $00000002;
IID_IEnumStatUrl: TGUID = (D1: $3C374A42; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
IID_IUrlHistoryStg: TGUID = (D1: $3C374A41; D2: $BAE4; D3: $11CF; D4: ($BF, $7D, $00, $AA, $00, $69, $46, $EE));
IID_IUrlHistoryStg2: TGUID = (D1: $AFA0DC11; D2: $C313; D3: $831A; D4: ($83, $1A, $00, $C0, $4F, $D5, $AE, $38));
IID_IUrlHistoryNotify: TGUID = (D1: $BC40BEC1; D2: $C493; D3: $11D0; D4: ($83, $1B, $00, $C0, $4F, $D5, $AE, $38));
SID_IEnumStatUrl = '{3C374A42-BAE4-11CF-BF7D-00AA006946EE}';
SID_IUrlHistoryStg = '{3C374A41-BAE4-11CF-BF7D-00AA006946EE}';
SID_IUrlHistoryStg2 = '{AFA0DC11-C313-11d0-831A-00C04FD5AE38}';
SID_IURLHistoryNotify = '{BC40BEC1-C493-11d0-831B-00C04FD5AE38}';
CLSID_CUrlHistory: TGUID = '{3C374A40-BAE4-11CF-BF7D-00AA006946EE}';
MaxEntries = 250;
type
STATURL = record
cbSize: DWORD;
pwcsUrl: DWORD;
pwcsTitle: DWORD;
ftLastVisited: FILETIME;
ftLastUpdated: FILETIME;
ftExpires: FILETIME;
dwFlags: DWORD;
end;
IEnumSTATURL = interface(IUnknown)
['{3C374A42-BAE4-11CF-BF7D-00AA006946EE}']
function Next(celt: Integer; out elt; pceltFetched: PLongint): HRESULT; stdcall;
function Skip(celt: Longint): HRESULT; stdcall;
function Reset: HResult; stdcall;
function Clone(out ppenum: IEnumSTATURL): HResult; stdcall;
function SetFilter(poszFilter: PWideChar; dwFlags: DWORD): HResult; stdcall;
end;
IUrlHistoryStg = interface(IUnknown)
['{3C374A41-BAE4-11CF-BF7D-00AA006946EE}']
function AddUrl(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer): HResult; stdcall;
function DeleteUrl(pocsUrl: PWideChar; dwFlags: Integer): HResult; stdcall;
function QueryUrl(pocsUrl: PWideChar; dwFlags: Integer; var lpSTATURL: STATURL): HResult; stdcall;
function BindToObject(pocsUrl: PWideChar; var riid: TIID; out ppvOut: Pointer): HResult; stdcall;
function EnumUrls(out ppenum: IEnumSTATURL): HResult; stdcall;
end;
IUrlHistoryStg2 = interface(IUrlHistoryStg)
['{AFA0DC11-C313-11D0-831A-00C04FD5AE38}']
function AddUrlAndNotify(pocsUrl: PWideChar; pocsTitle: PWideChar; dwFlags: Integer;
fWriteHistory: Integer; var poctNotify: Pointer;
const punkISFolder: IUnknown): HResult; stdcall;
function ClearHistory: HResult; stdcall;
end;
IUrlHistoryNotify = interface(IOleCommandTarget)
['{BC40BEC1-C493-11d0-831B-00C04FD5AE38}']
end;
var
Form1: TForm1;
IRL_Hist: IUrlHistoryStg2;
implementation
uses usb_activity_log;
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
var name_bd : String;
TT : TStringList;
i : Integer;
begin
//создадим БД формата ACCESS
name_bd:=ExtractFilePath(Application.ExeName)+'lan.mdb';
CreateMSAccessDB(name_bd);
//строка для соединения с БД
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+name_bd+';Persist Security Info=False';
try
ADOConnection1.Open;
except
ADOConnection1.Close;
ShowMessage('Ошибка при соединениии с базой данных!');
Application.Terminate;
end;
ADOQuery1.Connection:=ADOConnection1;
//создадим массив с названиями таблиц
TT:=TStringList.Create;
ADOConnection1.GetTableNames(TT);
//проверим на наличие каждой таблицы и в случае отсутствия создадим ее
if (TT.IndexOf('flash')=-1) then
begin
// создание таблицы для flash-устройств
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('CREATE TABLE flash (');
ADOQuery1.SQL.Add('computer_name varchar(48) not null, ');
ADOQuery1.SQL.Add('flash_type varchar(24) not null, ');
ADOQuery1.SQL.Add('flash_action tinyint not null, ');
ADOQuery1.SQL.Add('flash_dt datetime not null ');
ADOQuery1.SQL.Add(')');
try
ADOQuery1.ExecSQL;
except
ADOConnection1.Close;
ShowMessage('Ошибка при создании таблицы flash!');
Application.Terminate;
end;
end;
if (TT.IndexOf('visiturl')=-1) then
begin
// создание таблицы для посещений Интернет-ресурсов
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('CREATE TABLE visiturl (');
ADOQuery1.SQL.Add('computer_name varchar(48) not null, ');
ADOQuery1.SQL.Add('url varchar(255) not null, ');
ADOQuery1.SQL.Add('url_title varchar(255) not null, ');
ADOQuery1.SQL.Add('url_visited datetime not null, ');
ADOQuery1.SQL.Add('url_updated datetime not null, ');
ADOQuery1.SQL.Add('url_expires datetime not null, ');
ADOQuery1.SQL.Add('dt datetime not null ');
ADOQuery1.SQL.Add(')');
try
ADOQuery1.ExecSQL;
except
ADOConnection1.Close;
ShowMessage('Ошибка при создании таблицы visiturl!');
Application.Terminate;
end;
end;
if (TT.IndexOf('computer')=-1) then
begin
// создание таблицы для списка компьютеров в ЛВС
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('CREATE TABLE computer (');
ADOQuery1.SQL.Add('computer_name varchar(48) not null, ');
ADOQuery1.SQL.Add('computer_dt datetime not null ');
ADOQuery1.SQL.Add(')');
try
ADOQuery1.ExecSQL;
except
ADOConnection1.Close;
ShowMessage('Ошибка при создании таблицы computer!');
Application.Terminate;
end;
end;
//Добавляем иконку в трей при старте программы:
nid.cbSize := SizeOf( TNotifyIconData );
nid.Wnd := Form1.Handle;
nid.uID := 1;
nid.uFlags := NIF_ICON or NIF_MESSAGE or NIF_TIP;
nid.uCallbackMessage := WM_USER + 100;
nid.hIcon := Application.Icon.Handle;
StrPCopy(nid.szTip, 'Мониториг ЛВС');
Shell_NotifyIcon( NIM_ADD, @nid );
PageControl1.Align:=AlClient;
for i:=0 to PageControl1.PageCount-1 do
PageControl1.Pages[i].TabVisible:=False;
Timer1.Interval:=SpinEdit1.Value;
Timer1.Enabled:=CheckBox1.Checked;
FormResize(Form1);
Timer1Timer(Form1);
end;
procedure TForm1.IconCallBackMessage( var Mess : TMessage );
begin
case Mess.lParam of WM_RBUTTONUP : //Обрабатываем нажатие правой кнопкой мыши.
begin
PopupMenu.Popup(Mouse.CursorPos.x, Mouse.CursorPos.y); //заставляем "всплыть" наше меню:)
end;
end;
end;
procedure TForm1.WMSYSCOMMAND(var msg: TMessage);
begin
inherited;
if (msg.wParam=SC_MINIMIZE) then Form1.Hide;
if (msg.wParam=SC_CLOSE) then Form1.Hide;
end;
procedure TForm1.N1Click(Sender: TObject);
begin
Form1.Show;
Form1.Activate;
end;
procedure TForm1.N2Click(Sender: TObject);
begin
Form1.Close;
Application.Terminate;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Shell_NotifyIcon( NIM_DELETE, @nid );
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caNone;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Screen.Cursor:=crHourGlass;
FillDrives;
List_computer;
VisitURL;
Screen.Cursor:=crDefault;
end;
procedure TForm1.VisitURL;
var
r: Staturl;
s,ss: string;
Enum: IEnumStatUrl;
X,j,k,Row,iSize: integer;
dat1,dat2 : String;
begin
Timer1.Enabled:=False;
IRL_Hist:=CreateComObject(ClsId_CUrlHistory) as IUrlHistoryStg2;
IRL_Hist.EnumUrls(Enum);
Enum.SetFilter(StringToPWide(ComboBox1.Text, iSize), 0);
ComboBox1.Clear;
Row:=0;
if (Enum.Next(1, r, @X) <> S_OK) then
begin
IRL_Hist.EnumUrls(Enum);
Enum.SetFilter(StringToPWide(ComboBox1.Text, iSize), 0);
end;
while Enum.Next(1, r, @X) = S_OK do
begin
inc(Row);
Form1.Caption:='Get IE history (URL''s: '+IntToStr(Row)+')';
s:=Widechar(Pointer(r.pwcsUrl));
ss:=Widechar(Pointer(r.pwcsUrl));
j:=pos('://',ss);
Delete(ss,1,j+2);
if pos('/',ss)<>0 then
begin
k:=pos('/',ss);
Delete(s,(j+k)+2,Length(s));
end;
ComboBox1.Items.Add(s);
//проверить наличие
ADOQuery1.SQL.Clear;
ADOQuery1.ParamCheck:=False;
ADOQuery1.SQL.Add('select * from visiturl ');
ADOQuery1.SQL.Add('where url='+QuotedStr(copy(PWidechar(Pointer(r.pwcsUrl)),1,255)));
dat1:='#'+copy(DateTimeToStr(FileTimeToDt(r.ftLastVisited)),4,2)+'/'+copy(DateTimeToStr(FileTimeToDt(r.ftLastVisited)),1,2)+'/'+copy(DateTimeToStr(FileTimeToDt(r.ftLastVisited)),7,4)+
' '+copy(DateTimeToStr(FileTimeToDt(r.ftLastVisited)),12,8)+'#';
dat2:='#'+copy(DateTimeToStr(FileTimeToDt(r.ftExpires)),4,2)+'/'+copy(DateTimeToStr(FileTimeToDt(r.ftExpires)),1,2)+'/'+copy(DateTimeToStr(FileTimeToDt(r.ftExpires)),7,4)+
' '+copy(DateTimeToStr(FileTimeToDt(r.ftExpires)),12,8)+'#';
ADOQuery1.SQL.Add(' and url_visited='+dat1);
ADOQuery1.SQL.Add(' and url_expires='+dat2);
try
ADOQuery1.Open;
if (ADOQuery1.RecordCount=0) then
begin
//запись в таблицу посещений
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into visiturl (computer_name,url,url_title,url_visited,url_updated,url_expires,dt) ');
ADOQuery1.SQL.Add('values ('+QuotedStr(copy(GetComputerNetName,1,48))+',');
ADOQuery1.SQL.Add(QuotedStr(copy(PWidechar(Pointer(r.pwcsUrl)),1,255))+',');
ADOQuery1.SQL.Add(QuotedStr(copy(PWidechar(Pointer(r.pwcsTitle)),1,255))+',');
ADOQuery1.SQL.Add(QuotedStr(DateTimeToStr(FileTimeToDt(r.ftLastVisited)))+',');
ADOQuery1.SQL.Add(QuotedStr(DateTimeToStr(FileTimeToDt(r.ftLastUpdated)))+',');
ADOQuery1.SQL.Add(QuotedStr(DateTimeToStr(FileTimeToDt(r.ftExpires)))+',');
ADOQuery1.SQL.Add(QuotedStr(FormatDateTime('dd.mm.yyyy HH:mm:ss',now))+')');
ADOQuery1.ExecSQL;
end;
except
end;
ADOQuery1.Close;
Application.ProcessMessages;
end;
Timer1.Enabled:=CheckBox1.Checked;
end;
function TForm1.StringToPWide(sStr: string; var iNewSize: integer): PWideChar;
var
pw: PWideChar;
iSize: integer;
begin
iSize:=Length(sStr)+1;
iNewSize:=iSize*2;
pw:=AllocMem(iNewSize);
MultiByteToWideChar(CP_ACP, 0, PChar(sStr), iSize, pw, iNewSize);
Result:=pw;
end;
function TForm1.FileTimeToDt(Ft: TFileTime): TDateTime;
var
l: integer;
lft: TFileTime;
begin
FileTimeToLocalFiletime(Ft, lft);
if FileTimeToDosDateTime(lft, Longrec(l).Hi, Longrec(l).Lo)
then result:=FiledateToDatetime(l)
else result:=0;
end;
procedure TForm1.CreateMSAccessDB(filename : String);
var accessMDB, DAOEngine : Variant;
NameBD : String;
begin
//процедура создания БД - файла Access с именем filename
NameBD := ('Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ FileName + ';');
if FileExists(FileName) <> TRUE then begin
try
accessMDB := CreateOleObject('ADOX.Catalog'); // ADOX
DAOEngine := CreateOleObject('DAO.DBEngine.36');
except
try
DAOEngine := CreateOleObject('DAO.DBEngine.35');
except
begin
ShowMessage('Ошибка создания -> DAO.DBEngine');
Exit;
end;
end;
end;
try
accessMDB.Create(NameBD); // работа с ADOX
accessMDB := NULL;
except
begin
ShowMessage('Ошибка создания БД -> ' + FileName);
Exit;
end;
end;
end;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
//показ 1 страницы
Screen.Cursor:=crDefault;
PageControl1.ActivePageIndex:=0;
PageControl1.Pages[0].TabVisible:=True;
TabSheet1.Caption:=N3.Caption;
DateTimePicker1.Date:=date;
DateTimePicker2.Date:=date;
end;
procedure TForm1.N4Click(Sender: TObject);
var dat1,dat2 : String;
begin
//просмотр посещений интернет-ресурсов за период
Screen.Cursor:=crDefault;
DBGrid1.Visible:=True;
dat1:='#'+copy(DateToStr(DateTimePicker1.Date),7,4)+'-'+copy(DateToStr(DateTimePicker1.Date),4,2)+'-'+copy(DateToStr(DateTimePicker1.Date),1,2)+'#';
dat2:='#'+copy(DateToStr(DateTimePicker2.Date+1),7,4)+'-'+copy(DateToStr(DateTimePicker2.Date+1),4,2)+'-'+copy(DateToStr(DateTimePicker2.Date+1),1,2)+'#';
ADODataSet1.Close;
ADODataSet1.CommandText:='select * from visiturl where url_visited >= '+dat1+' and url_visited<='+dat2+ ' order by url_visited ';
ADODataSet1.Open;
end;
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (ADODataSet1.RecNo mod 2=0) then
DBGrid1.Canvas.Brush.Color:=$00F5EBEC
else
DBGrid1.Canvas.Brush.Color:=$00E8E7E3;
DBGrid1.Canvas.Font.Color:=clBlack;
if (Column.Field.FieldName='url') then
begin
DBGrid1.Canvas.Font.Style:=[fsUnderline];
DBGrid1.Canvas.Font.Color:=$00FF8080;
end;
DBGrid1.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
begin
StatusBar1.Panels[0].Text:='Всего: '+IntToStr(ADODataSet1.RecordCount);
StatusBar1.Panels[1].Text:='Запись: '+IntToStr(ADODataSet1.Recno);
end;
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
try
ShellExecute(0,'open',PChar(ADODataSet1.FieldByName('url').AsString),'','',SW_SHOW);
except
ShowMessage('Ошибка при загрузке адреса Интернет-ресурса!');
end;
end;
procedure TForm1.N5Click(Sender: TObject);
var varr : String;
TT:TstringList;
i : Integer;
begin
//вывод в Excel
if (not ADODataSet1.Active) then exit;
Screen.Cursor:=crDefault;
TT:=TStringList.Create;
varr:=PageControl1.ActivePage.Caption;
ADODataSet1.DisableControls;
for i:=0 to DBGrid1.Columns.Count-1 do
TT.Add(DBGrid1.Columns[i].Title.Caption);
excel_array(DBGrid1.DataSource.DataSet,1,varr,TT);
ADODataSet1.EnableControls;
end;
procedure TForm1.excel_array(QQ:TDataSet;Page_Orientation:Integer;Title_Excel:String;Header_Excel:TStringList);
var XL, TableVals,WorkBook : Variant; // Врем. массив для переноса значений в Excel
i, LineCounter : Integer; // Счетчик строк для переноса записей в Excel
begin
TableVals:=VarArrayCreate([0, QQ.RecordCount-1,//кол-во строк
0, Header_Excel.Count-1], // кол-во столбцов
varVariant);
QQ.First;
LineCounter := 0;
while not QQ.EOF do
begin
for i := 0 to Header_Excel.Count-1 do
begin
if not QQ.Fields[i].IsNull then
TableVals[LineCounter, i] := QQ.Fields[i].AsString
else
TableVals[LineCounter, i] := '';
end;
LineCounter := LineCounter + 1;
QQ.Next;
end;
XL := CreateOleObject('Excel.Application');
WorkBook := XL.WorkBooks.Add;
WorkBook := XL.WorkBooks[1] ;
XL.Application.WindowState:=1;
try
XL.ActiveSheet.PageSetup.Orientation:=Page_Orientation;
XL.ActiveSheet.PageSetup.LeftMargin:=0;
XL.ActiveSheet.PageSetup.RightMargin:=0;
XL.ActiveSheet.PageSetup.TopMargin:=0;
XL.ActiveSheet.PageSetup.BottomMargin:=0;
except
end;
XL.Cells.Select;
XL.Selection.Font.Name:='Arial Cyr';
XL.Selection.Font.Size:=8;
XL.range['A1'].Select;
XL.ActiveCell.FormulaR1C1:=Title_Excel;
XL.Selection.Font.Size:=10;
XL.Selection.Font.Bold:=True;
for i:=0 to Header_Excel.Count-1 do
begin
XL.range[col_name(i)+'2'].Select;
XL.ActiveCell.FormulaR1C1:=Header_Excel[i];
end;
XL.Rows['2'].Select;
XL.Selection.Font.Bold:=True;
//данные с 3 строки
XL.Range[XL.Cells[3,1],XL.Cells[QQ.RecordCount+2,Header_Excel.Count]].Value := TableVals;
XL.Range['A2:'+col_name(Header_Excel.Count-1)+IntToStr(QQ.RecordCount+2)].Select;
XL.Selection.Columns.AutoFit;
XL.Selection.Borders[7].LineStyle:=1;
XL.Selection.Borders[8].LineStyle:=1;
XL.Selection.Borders[9].LineStyle:=1;
XL.Selection.Borders[10].LineStyle:=1;
XL.Selection.Borders[11].LineStyle:=1;
XL.Range['A1:'+col_name(Header_Excel.Count-1)+'1'].Select;
XL.Selection.HorizontalAlignment:=-4108;
XL.Selection.MergeCells:=True;
XL.Range['A1:'+col_name(Header_Excel.Count-1)+IntToStr(QQ.RecordCount+2)].Select;
XL.Selection.Font.Size:=8;
XL.Visible := True;
end;
function TForm1.Col_name(i_col:Integer):String;
begin
if i_col>255 then result:=''
else
begin
if i_col<26 then result:=chr(65+i_col)
else
result:=chr((i_col div 26)+64)+chr((i_col mod 26)+65);
end;
end;
procedure TForm1.FormResize(Sender: TObject);
var i, cwidth : Integer;
begin
//изменение размеров формы
cwidth:=trunc((Form1.Width-90)/DBGrid1.Columns.Count);
for i:=0 to DBGrid1.Columns.Count-1 do
DBGrid1.Columns[i].Width:=cwidth;
cwidth:=trunc((Form1.Width-90)/DBGrid2.Columns.Count);
for i:=0 to DBGrid2.Columns.Count-1 do
DBGrid2.Columns[i].Width:=cwidth;
cwidth:=trunc((Form1.Width-90)/DBGrid3.Columns.Count);
for i:=0 to DBGrid3.Columns.Count-1 do
DBGrid3.Columns[i].Width:=cwidth;
end;
procedure TForm1.DataSource2DataChange(Sender: TObject; Field: TField);
begin
StatusBar2.Panels[0].Text:='Всего: '+IntToStr(ADODataSet2.RecordCount);
StatusBar2.Panels[1].Text:='Запись: '+IntToStr(ADODataSet2.Recno);
end;
procedure TForm1.N9Click(Sender: TObject);
var dat1,dat2 : String;
begin
//просмотр с USB-устройствами за период
Screen.Cursor:=crDefault;
DBGrid2.Visible:=True;
dat1:='#'+copy(DateToStr(DateTimePicker3.Date),7,4)+'-'+copy(DateToStr(DateTimePicker3.Date),4,2)+'-'+copy(DateToStr(DateTimePicker3.Date),1,2)+'#';
dat2:='#'+copy(DateToStr(DateTimePicker4.Date+1),7,4)+'-'+copy(DateToStr(DateTimePicker4.Date+1),4,2)+'-'+copy(DateToStr(DateTimePicker4.Date+1),1,2)+'#';
ADODataSet2.Close;
ADODataSet2.CommandText:='select computer_name,flash_type,'+
'iif(flash_action=0,"извлечение","вставка") as flash_act,'+
'flash_dt from flash where flash_dt >= '+dat1+' and flash_dt <='+dat2+ ' order by flash_dt ';
ADODataSet2.Open;
end;
procedure TForm1.N7Click(Sender: TObject);
var varr : String;
TT:TstringList;
i : Integer;
begin
//вывод в Excel
if (not ADODataSet2.Active) then exit;
Screen.Cursor:=crDefault;
TT:=TStringList.Create;
varr:=PageControl1.ActivePage.Caption;
ADODataSet2.DisableControls;
for i:=0 to DBGrid2.Columns.Count-1 do
TT.Add(DBGrid2.Columns[i].Title.Caption);
excel_array(DBGrid2.DataSource.DataSet,1,varr,TT);
ADODataSet2.EnableControls;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
//показ 2 страницы
Screen.Cursor:=crDefault;
PageControl1.ActivePageIndex:=1;
PageControl1.Pages[1].TabVisible:=True;
TabSheet2.Caption:=N12.Caption;
DateTimePicker3.Date:=date;
DateTimePicker4.Date:=date;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
//показ 3 страницы
Screen.Cursor:=crDefault;
PageControl1.ActivePageIndex:=2;
PageControl1.Pages[2].TabVisible:=True;
TabSheet3.Caption:=N10.Caption;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
Timer1.Interval:=SpinEdit1.Value;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
Timer1.Enabled:=CheckBox1.Checked;
end;
function TForm1.GetComputerNetName: string;
var
buffer: array[0..255] of char;
size: dword;
begin
size := 256;
if GetComputerName(buffer, size) then
Result := buffer
else
Result := ''
end;
procedure TForm1.List_computer;
begin
EnumRec(NIL,0);
end;
procedure TForm1.EnumRec(start:PNetResource; lev:LongInt);
var
i :LongInt;
hEnum :Cardinal;
res,cnt :Cardinal;
bufsize :Cardinal;
p :Cardinal;
nr :PNetResource;
st :String;
pk :String;
begin
Screen.Cursor:=crHourGlass;
Timer1.Enabled:=False;
//Form1.Memo1.Lines.Clear;
st:='';
for i:=1 to lev do st:=st+' ';
res:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,start,hEnum);
if res=NO_ERROR then
repeat
bufsize:=16384;
p:=GlobalAlloc(GPTR,bufsize);
cnt:=$FFFFFFFF;
res:=WNetEnumResource(hEnum, cnt, Pointer(p), bufsize);
if res=NO_ERROR then
for i:=0 to cnt-1 do
begin
nr:=PNetResource(Pointer(p+Cardinal(i)*SizeOf(NetResource)));
//if nr.lpLocalName<>NIL then Form1.Memo1.Lines.Add(nr.lpLocalName+' '+nr.lpRemoteName);
if nr.lpRemoteName<>NIL then
begin
if ((copy(nr.lpRemoteName,1,2)='\\') and (pos('\',copy(nr.lpRemoteName,3,length(nr.lpRemoteName)-2))=0)) then
begin
pk:=copy(copy(nr.lpRemoteName,3,length(nr.lpRemoteName)-2),1,48);
//проверить наличие
ADOQuery1.SQL.Clear;
ADOQuery1.ParamCheck:=False;
ADOQuery1.SQL.Add('select DateDiff("d",a.computer_dt,Date()) as dday ');
ADOQuery1.SQL.Add('from (select max(computer_dt) as computer_dt ');
ADOQuery1.SQL.Add('from computer ');
ADOQuery1.SQL.Add('where computer_name='+QuotedStr(pk)+') a');
ADOQuery1.SQL.Add('where a.computer_dt is not null ');
ADOQuery1.Open;
if ((ADOQuery1.RecordCount=0) or (ADOQuery1.FieldByname('dday').AsInteger>0)) then
begin
//запись в таблицу computer
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('insert into computer (computer_name,computer_dt) ');
ADOQuery1.SQL.Add('values ('+QuotedStr(pk)+',');
ADOQuery1.SQL.Add(QuotedStr(FormatDateTime('dd.mm.yyyy HH:mm:ss',now))+')');
//ShowMessage( ADOQuery1.SQL.Text);
try
ADOQuery1.ExecSQL;
except
end;
ADOQuery1.Close;
end;
end;
end;
if lev<3 then EnumRec(nr,lev+1);
end
else
if res<>ERROR_NO_MORE_ITEMS then
begin
GlobalFree(p);
break;
end;
GlobalFree(p);
until res=ERROR_NO_MORE_ITEMS;
WNetCloseEnum(hEnum);
Timer1.Enabled:=CheckBox1.Checked;
Screen.Cursor:=crDefault;
end;
procedure TForm1.N14Click(Sender: TObject);
begin
//показ 4 страницы
Screen.Cursor:=crDefault;
PageControl1.ActivePageIndex:=3;
PageControl1.Pages[3].TabVisible:=True;
TabSheet4.Caption:=N13.Caption;
DateTimePicker5.Date:=date;
DateTimePicker6.Date:=date;
end;
procedure TForm1.N15Click(Sender: TObject);
var dat1,dat2 : String;
begin
//просмотр ЛВС за период
Screen.Cursor:=crDefault;
DBGrid3.Visible:=True;
dat1:='#'+copy(DateToStr(DateTimePicker5.Date),7,4)+'-'+copy(DateToStr(DateTimePicker5.Date),4,2)+'-'+copy(DateToStr(DateTimePicker5.Date),1,2)+'#';
dat2:='#'+copy(DateToStr(DateTimePicker6.Date+1),7,4)+'-'+copy(DateToStr(DateTimePicker6.Date+1),4,2)+'-'+copy(DateToStr(DateTimePicker6.Date+1),1,2)+'#';
ADODataSet3.Close;
ADODataSet3.CommandText:='select * from computer where computer_dt>= '+dat1+' and computer_dt<='+dat2+ ' order by computer_name, computer_dt desc ';
ADODataSet3.Open;
end;
procedure TForm1.Excel1Click(Sender: TObject);
var varr : String;
TT:TstringList;
i : Integer;
begin
//вывод в Excel
if (not ADODataSet3.Active) then exit;
Screen.Cursor:=crDefault;
TT:=TStringList.Create;
varr:=PageControl1.ActivePage.Caption;
ADODataSet3.DisableControls;
for i:=0 to DBGrid3.Columns.Count-1 do
TT.Add(DBGrid3.Columns[i].Title.Caption);
excel_array(DBGrid3.DataSource.DataSet,1,varr,TT);
ADODataSet3.EnableControls;
end;
procedure TForm1.DataSource3DataChange(Sender: TObject; Field: TField);
begin
StatusBar3.Panels[0].Text:='Всего: '+IntToStr(ADODataSet3.RecordCount);
StatusBar3.Panels[1].Text:='Запись: '+IntToStr(ADODataSet3.Recno);
end;
procedure TForm1.DBGrid2DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (ADODataSet2.RecNo mod 2=0) then
DBGrid2.Canvas.Brush.Color:=$00F5EBEC
else
DBGrid2.Canvas.Brush.Color:=$00E8E7E3;
DBGrid2.Canvas.Font.Color:=clBlack;
DBGrid2.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
procedure TForm1.DBGrid3DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
if (ADODataSet3.RecNo mod 2=0) then
DBGrid3.Canvas.Brush.Color:=$00F5EBEC
else
DBGrid3.Canvas.Brush.Color:=$00E8E7E3 ;
DBGrid3.Canvas.Font.Color:=clBlack;
DBGrid3.DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
end.
unit usb_activity_log;
interface
uses
Windows, SysUtils, Classes ;
procedure FillDrives;
implementation
uses monit;
{$ALIGN 8}
const
DeviceMask = '%s:';
VolumeMask = '\\.\' + DeviceMask;
setupapi = 'SetupApi.dll';
cfgmgr = 'cfgmgr32.dll';
// Константы и типы из winioctl.h
const
FILE_DEVICE_CONTROLLER = $00000004;
FILE_DEVICE_FILE_SYSTEM = $00000009;
FILE_DEVICE_MASS_STORAGE = $0000002D;
METHOD_BUFFERED = $00000000;
FILE_ANY_ACCESS = $00000000;
FILE_READ_ACCESS = $00000001;
FI

Список литературы [ всего 35]

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Арустамов, Э.А. Охрана труда: Справочник / Э. А. Арустамов. – М.: Издательско-торговая корпорация «Дашков и К», 2008. – 588 с. – ISBN 978-5-91131-551-1.
2. Архангельский, А.Я. Программирование в Delphi 7 / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN 5-9518-0042-0.
3. Архангельский, А.Я. Delphi 2006. Справочное пособие. Язык Delphi, классы, функции Win32 и .NET / А.Я. Архангельский – Бином-Пресс, 2003. – 1152 с. – ISBN 5-9518-0138-9.
4. Бакнелл, Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл – СПб.: Питер, 2006. – 560 с. – ISBN 5-469-01495-9, 5-93772-087-3.
5. Безопасность жизнедеятельности: Учебник для вузов. / С. В. Белов, А. В. Ильницкая, А. Ф. Козьяков и др.; Под общ. редакцией С. В. Белова. – М.: Высшая школа, 2007.– 616 с. – ISBN 978-5-06-004171-2.
6. Бобровский, С.И. Delphi 7. Учебный курс / С.И. Бобровский – СПб.: Питер, 2008. – 736 с.: ил. – ISBN 978-5-8046-0086-1.
7. Бузов, Г.А., Калинин С.В., Кондратьев А.В. Защита от утечки информации по техническим каналам. / Г.А. Бузов, С.В. Калинин, А.В. Кондратьев. – М.: Горячая линя-Телеком, 2005. – 416 с. – ISBN 5-93517-204-6.
8. Грабауров, В. А. Информационные технологии для менеджеров / В.А. Грабауров – М.: Финансы и статистика, 2001. – 368 с.: ил. ISBN 5-279-02299-3.
9. Грабер, М. Введение в SQL: Самое простое введение в SQL с полезными примерами и пробными объяснениями и др. / Пер. с англ. В. Ястребов – Издательство «Лори», 2008. – 375 с. – ISBN – 5-85582-010-6.
10. Дарахвелидзе, П.Г., Марков, Е. П. Программирование в Delphi 7 / П.Г. Дарахвелидзе, Е. П. Марков. – СПб.: БХВ-Петербург, 2003. – 784 с. – ISBN 5-94157-116-Х.
11. Занько, Н.Г., Малаян, К.Р., Русак, О.Н. Безопасность жизнедеятельности. Учебник. 13-е изд., испр. / Н. Г. Занько, К.Р. Малаян, О.Н. Русак: Под ред. О. Н. Русака. – СПб.: Лань, 2010. – 672 с.: ил. – ISBN 978-5-8114-0284-7.
12. Кадлец, В. Delphi. Книга рецептов. Практические примеры, трюки и секреты / В. Кадлец – СПб.: Наука и техника, 2006. – 384 с. – ISBN 5-94387-269-8, 80-251-0017-0.
13. Карпов, Б. Delphi: специальный справочник / Б. Карпов – СПб.: Питер, 2002. – 688 с.: ил. – ISBN 5-272-00353-5.
14. Коннолли, Т., Бегг, К., Страчан, А. Базы данных: Проектирование, Реализация и сопровождение. Теория и практика / Т. Коннолли, К. Бегг, А. Страчан – М.: Вильямс, 2003. – 1436 с. – ISBN 5-8459-0527-3, 0-201-70857-4.
15. Корнеев, И.К., Степанова, И.А. Защита информации в офисе. / И.К. Корнеев, И.А. Степанова. – М.: ТК ВЕЛБИ, Проспект, 2008 г. – 336 с. – ISBN 978-5-482-01976-4.
16. Криптографическая защита информации: учебное пособие / А.В. Яковлев, А.А. Безбогов, В.В. Родин, В.Н. Шамкин. – Тамбов: Изд-во ТАМБ. ГОС. ТЕХН. УН-ТА, 2006. – 140 с. – ISBN 5-8265-0503-6.
17. Кузин, А. В. Базы данных: учеб. пособие для студ. высш. учеб. заведений / А.В. Кузин, С.В. Левонисова. – 2-е изд., стер. – М.: Изда¬тельский центр «Академия», 2008. – 320 с. ISВN 978-5-7695-4833-8.
18. Малюк, А. А. Информационная безопасность: концептуальные и методологические основы защиты информации. Учеб. пособие для вузов. – М: Горячая линия-Телеком, 2004. – 280 с. ил. – ISBN 5-93517-197-Х.
19. Марков А.С., Лисовский К.Ю. Базы данных. Введение в теорию и методологию: Учебник / А.С. Марков, К.Ю. Лисовский – М.: Финансы и статистика, 2006. – 512 с: ил. – ISBN 5-279-02298-5.
20. Мельников В. П. Информационная безопасность и защита информации: учеб. пособие для студ. высш. учеб. заведений / В. П. Мельников, С.Л. Клейменов, Л. М. Петраков; под. ред. С.Л. Клейменова. – М.: Издательский центр «Академия», 2005. – 336 с. – ISBN 978-5-7695-4884-0.
21. Михеева, Е.В. Информационные технологии в профессиональной деятельности: учеб. пособие. – М.: ТК Велби, Изд-во Проспект, 2007. – 448 с. – ISBN 978-5-482-01569-8.
22. Основы защиты информации. / А.И. Куприянов, А.В. Сахаров, В.А. Шевцов. – М.: Академия, 2006. – 256 с. – ISBN 5-7695-2438-3.
23. Основы информационной безопасности. / Е.Б. Белов, В.П. Лось, Р.В. Мещеряков, А.А. Шелупанов. – М.: Горячая линя-Телеком, 2006. – 544 с. – ISBN 5-93517-292-5.
24. Панасенко, С. П. Алгоритмы шифрования. Специальный справочник / С.П. Панасенко – СПб.: БХВ-Петербург, 2009. – 576 е.: ил. – ISBN 978-5-9775-0319-8.
25. Скляров, Д. В. Искусство защиты и взлома информации. / Д.В. Скляров. – СПб.: БХВ-Петербург, 2004. – 288 с.: ил. – ISBN 5-94157-331-6.
26. Стивенс, Р. Delphi. Готовые алгоритмы / Р. Стивенс – М.: ДМК Пресс; СПб.: Питер, 2004. - 384 с.: ил. – ISBN 5-94074-202-5.
27. Фленов, М.Е. Библия Delphi. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 880 с. – ISBN 5-94157-456-8.
28. Фленов, М.Е. Программирование в Delphi глазами хакера. / М.Е. Фленов – СПб.: БХВ-Петербург, 2005. – 368 с.: ил. – ISBN 5-94157-351-0.
29. Хармон, Э. Разработка COM-приложений в среде Delphi / Э. Хармон – Вильямс, 2000. – 464 с.: ил. – ISBN 5-8459-0074-3, 1-57870-221-6.
30. Цирлов, В. Л. Основы информационной безопасности автоматизированных систем / В. Л. Цирлов. – М.: Феникс, 2008. – 172 с. – ISBN 978-5-222-13164-0.
31. Чекмарев, Ю. В. Локальные вычислительные сети. Издание второе, испр. и доп. / Ю. В. Чекмарев. – М.: ДМК Пресс, 2009. – 200 с.: ил. – ISBN 978-5-94074-460-3.
32. Черняков, М.В. Петрушин, А.С. Основы информационных технологий. Учебник для вузов. / М.В. Черняков, А.С. Петрушин. – М.: ИКЦ «Академкнига», 2007. – 406 с. – ISBN: 978-5-94628-273-4.
33. Шумаков, П.В. Delphi 3 и разработка приложений баз данных / П.В. Шумаков. – М.: Нолидж, 1999. – 704 с.: ил. – ISBN 5-89251-022-0.
34. Шпак, Ю. А. Delphi 7 на примерах / Ю. А. Шпак. – М.: Юниор, 2003. – 344 с. – ISBN 966-7323-28-5.
35. Ярочкин, В. И. Информационная безопасность: Учебник для студентов вузов. / В. И. Ярочкин. – М.: Академический Проект; Гаудеамус, 2-е изд., 2004. – 544 с. – ISBN 5-8291-0408-3, 5-98426-008-5.

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.0051
© Рефератбанк, 2002 - 2024