Управление подключением флешек

Сергій

Разработчик
Сообщения
1,045
Реакции
300
Столкнулся с такой задачей на работе:
Если в комп подключают флешку с заведомопозволенньім номером, то она работает. Если подключают неизвестную, то она сразу извлекается (до запуска autorun.inf) или просто не подключается.
Как это реализовать программно?
Может опираясь на то, что если флешка неизвестна, то это новое оборудование, и нужно просто как-то запретить подключение нового оборудования?
 
Последнее редактирование модератором:
А отключить автозапуск не вариант?
У Вас система XP ?
 
Можете заблокировать через групповые политики по GUID флеш-накопителя.
Подробнее в этом и этом руководствах.

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

Альтернативно, можно воспользоваться готовыми инструментами, например, службой USBDLM от Uwe Sieber для отслеживания подключения нового устройства. Пример практической реализации можно посмотреть внутри AntiHidden. А для отключения флешки можно взять RemoveDrive от того же автора. Учтите, что при этом установка драйвера не блокируется и автозапуск (если он настроен) сработает.
 
Последнее редактирование:
А отключить автозапуск не вариант?
У Вас система XP ?
_ Начальница возмущается, что втьікают флешки все кому непопадя. А программно извлекая флешку после срабатьівания авторана, мьі рискуем получить вакцину от нашей программьі
_ да, ХР
 
Назад
Сверху Снизу