Какая программа использует флешку

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

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

Это сообщение для нашего же блага, милостивый Windows заботится о нашей флешке и данных. Например, если происходит передача данных между вашей USB флешкой и жестким диском, и если вы извлечете флешку в это время, то вполне возможно, что данные будут повреждены. Поэтому это сообщение предупреждает пользователя, что съемный диск используется некоторыми процессами.

Как извлечь флешку? Нужно ли безопасно извлекать флешку.

Но проблема в том, что ОС Windows, каким бы он заботливым не был, не может распознать, какие именно программы используют диск, так что вы можете закрыть эту программу или процесса. Возможно также, что программа не имеет доступа к диску, но ее процесс выполняется в фоновом режиме. Такие процессы, которые трудно выявить и закрыть. Как узнать какой процесс блокирует диск USB при извлечении?

Решением этой проблемы является использование специальной программы

Dev Eject это бесплатный инструмент для Windows, который перечисляет все съемные устройства и определяет приложения, которые блокируют флешку при извлечении. В нем четко перечислены все программы, которые работают с устройством и каким процессом используется. Интерфейс этого программы является интуитивно понятной и простой.

Иконка в трее

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

Основное меню

После запуска Dev Eject, он представит список всех подключенных устройств через интерфейс USB, а также через SATA интерфейс. Нажмите на отдельное устройство из этого списка, и вы сможете: извлечь диск Eject, можете узнать блокирующие программы Locks. Кнопка Refresh обновляет список устройств
Когда вы знаете блокирующую программу, то просто можете закрыть его вручную, и если он работает в фоновом режиме, то закрыть его из «Диспетчер задач». Но это геморрно, согласитесь?
Можно кликнув правой кнопкой мыши на процесс выбрать KILL Procces и будет счастье!

В разделе Setting(Настройки) вы можете установить флаг «Start Dev Eject when I start Windoes»(Добавить в автозагрузку), иTray integrator(Показывать в трее иконку)

Настройки

.

Источник: texhepl.ru

Найдите, какая программа блокирует USB-устройство при извлечении

Найдите, какая программа блокирует USB-устройство при извлечении

Много раз, когда вы пытаетесь отключить USB-накопитель, вы получаете сообщение об ошибке, что накопитель используется какой-то программой. Это разумная мера предосторожности со стороны Windows. Она предупреждает вас о возможной передаче данных или любом другом использовании. Если вы отключите диск во время этого, это может привести к повреждению данных.

Читайте также:
Программа арго для кадастровых инженеров отзывы

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

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

Узнайте, какая программа блокирует USB-устройство при извлечении

Dev Eject — это бесплатный инструмент на базе windows, который поможет вам определить приложения, которые используют и заблокировали устройство. Он также позволяет управлять приложениями, убивая их или перемещая на передний план. Помните, что всегда полезно извлекать USB-накопители с помощью интерфейса Windows или любого другого инструмента. Даже если в 90% случаев ничего не происходит, вы никогда не захотите, чтобы ваш USB стал кирпичом, особенно в чрезвычайной ситуации или при выполнении важной работы.

Найдите, какая программа блокирует USB-устройство при извлечении

Особенности Dev Eject

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

Видеодемонстрация DevEject

В видео объясняется, как с помощью DevEject можно снять любую блокировку или узнать о программе, используя USB-накопитель.

Вашим следующим шагом должно стать Защитите свой компьютер от зараженных USB-накопителей с помощью USB Immunizer

YouTube видео: Найдите, какая программа блокирует USB-устройство при извлечении

Вопросы и ответы по теме: “Найдите, какая программа блокирует USB-устройство при извлечении”

Как узнать какой процесс блокирует флешку?

Чтобы узнать, какие программы работают с флешкой, выберите ее и нажмите кнопку Locks. Откроется окно с названием программы и ее расположением на диске. Здесь же видно, какое действие выполняет программа: копирует файлы на флешку, с нее или просто держит ее в заблокированном состоянии.

Как ограничить доступ к USB?

Вы можете настроить политика ограничения использования USB портов на отдельностоящем компьютере (домашний компьютер или компьютер в рабочей группе) с помощью локального редактора групповых политик (gpedit. msc). Задайте имя политики — Disable USB Access.

Как запретить отключать питание USB?

Откройте приложение «Параметры», перейдите в раздел Устройства -> USB и снимите галочку с чекбокса «Останавливать устройства, когда экран отключен…».

Как разблокировать юсб?

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

Как узнать что блокирует программу?

**Ничего качать не надо, всё делается штатными инструментами:**1. Нажимаем Win+S. 2. Набираем в поиске “монитор” 3. Находим в списке “Монитор ресурсов”, открываем 4. Переключаемся на вкладку ЦП 5. В разделе “связанные дескрипторы” вводим имя заблокированного файла 6. Правой кнопкой мыши закрываем процесс, отображённый в списке 7. 8. Profit!

Читайте также:
Как пользоваться программой sdrsharp

Какой программой проверить флешку?

  1. H2testw: Наиболее популярная программа для проверки накопителей:
  2. AxoFlashTest. Менее известная альтернатива H2testw, но обладающая схожим функционалом:
  3. Flash Drive/Card Tester:
  4. USB Memory Stick Tester:
  5. Check Flash:
  6. Bulldog:

Источник: gud-pc.com

Игрища с USB в Windows (отслеживаем и контролируем)

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

Итак, в статье я расскажу, как:
[+] отследить появление новой флешки или USB-диска в системе (даже если это хитрожопая флешка, которая монтируется как CD-ROM+Flash, например, или флешка, разбитая на пару дисков)
[+] отслеживать безопасное извлечение флешек и манипулировать им
[+] самому безопасно извлечь любой извлекаемый USB-девайс по букве его диска
[+] отследить прочие события, а именно небезопасное извлечение флешки и отказ в безопасном извлечении

Само-собой, никаких драйверов, только уровень пользователя! Я также поделюсь с вами исходником класса на C++, который реализует все вышеописанные задачи. Давно я не писал годных толстых статей.

Надеюсь, вы приготовились погрузиться в недра WinAPI. Начнем с теории. В Windows существуют специальные события, которые система посылает, когда пользователь вставляет какой-либо USB-девайс в свой компьютер или вытаскивает его. Это DBT_DEVICEARRIVAL и DBT_DEVICEREMOVECOMPLETE. Оба эти ивента шлются через сообщение WM_DEVICECHANGE.

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

Но на самом деле все не так радужно. Представим такую ситуацию: пользователь вставляет в компьютер новомодную флешку, которая монтируется как CD-ROM, содержащий сопутствующее ПО для нее, и как непосредственно флеш-диск. Через DBT_DEVICEARRIVAL действительно придет сообщение о добавлении двух дисков в систему.

Однако, если пользователь вытащит флешку с помощью функции безопасного извлечения устройств, мы узнаем через ивент DBT_DEVICEREMOVECOMPLETE только о том, что был извлечен один из этих двух дисков. Такая ситуация стабильно проявляется как минимум на Windows 7. Я нашел путь, который позволяет стопроцентно определить, какие устройства добавились или удалились из системы — при получении DBT_DEVICEARRIVAL или DBT_DEVICEREMOVECOMPLETE достаточно перечислить все установленные в системе диски, найти среди них USB-девайсы и сравнить полученный список с предыдущим состоянием до прихода события. Возможно, это не очень оптимально, зато мы точно узнаем, какие USB-устройства были примонтированы и удалены из системы.

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

Казалось бы, все просто — есть же событие DBT_DEVICEQUERYREMOVE. Все верно, это то, что нам нужно. Только вот оно не отсылается системой по умолчанию, как я понял. Как быть? На просторах интернета было найдено решение: необходимо открыть замонтированный диск с помощью функции CreateFile (с флагом FILE_FLAG_BACKUP_SEMANTICS) и держать его открытым.

Читайте также:
Программа арм фсс как пользоваться

Далее необходимо зарегистрировать оповещение о событии безопасного извлечения с помощью RegisterDeviceNotification с типом DBT_DEVTYP_HANDLE (регистрируем по хэндлу устройства, который получили из предыдущего вызова). После этого система начнет слать нам событие DBT_DEVICEQUERYREMOVE с типом (dbch_devicetype) DBT_DEVTYP_HANDLE. Теперь мы сможем определить, какое из подконтрольных нам устройств пользователь хочет безопасно извлечь, и даже вмешаться в этот процесс. Делается это достаточно просто — если мы не хотим позволять системе делать безопасное извлечение устройства, достаточно из обработчика DBT_DEVICEQUERYREMOVE вернуть значение BROADCAST_QUERY_DENY, а если хотим — то TRUE, не забыв при этом снять регистрацию ивента с помощью UnregisterDeviceNotification и закрыть с помощью CloseHandle хендл устройства. Во время обработки ивента DBT_DEVICEQUERYREMOVE мы можем по-быстрому закрыть все прочие хендлы, если наша программа в этот момент использует флешку, завершить все операции записи/чтения.

Но тут есть еще одна тонкость — на эти операции система дает нам ограниченное время. Таймаут примерно 10-15 секунд (в Win 7 меньше, в XP больше). Если мы не успели вернуть из обработчика DBT_DEVICEQUERYREMOVE ничего, то система просто выдаст пользователю сообщение о том, что устройство занято и не может быть извлечено.

Даже если мы вернем TRUE после этого, это ни на что не повлияет — устройство так и останется неизвлеченным. Однако, с этой проблемой тоже можно бороться. Ничто не мешает нам определить, прошел ли таймаут ожидания ответа на событие, и если прошел, то принудительно демонтировать устройство после того, как мы реально закончим с ним работать. Это, конечно, не спасет от назойливой таблички с сообщением о занятости флешки, но первоначальное желание пользователя будет выполнено, так как устройство в конечном счете будет извлечено. Разумеется, не стоит слишком много времени тратить на работу с флешкой после того, как пользователь пожелал ее извлечь, иначе он просто выдернет ее из компьютера, а это не то, чего мы хотим.

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

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

Здесь все просто — необходимо зарегистрировать оповещения о событиях устройств с помощью уже упомянутой функции RegisterDeviceNotification с флагом DEVICE_NOTIFY_SERVICE_HANDLE. В этом случае все ивенты мы сможем обрабатывать внутри своего ServiceCtrlHandler’а (SERVICE_CONTROL_DEVICEEVENT). Код для этого я не писал, но разобраться проблемы не будет, так как никаких отличий в начинке этого кода по сути нет.

Теперь перейдем к самому коду. Если кратко: класс usb_monitor, который я написал в результате всех этих исследований, позволяет отслеживать установку-вытаскивание флешки, нормально работает с любыми флеш-дисками, позволяет манипулировать безопасным отключением устройств. Используется немного буста для реализации коллбеков. Класс еще можно совершенствовать и улучшать, но он уже хорошо справляется со своими задачами. Рассмотрим сначала интерфейс класса (usb_monitor.h):

Источник: kaimi.io

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru