Ищем код C # для обнаружения съемного диска (флешка) - PullRequest
5 голосов
/ 04 апреля 2009

Я ищу фрагмент кода C #, чтобы получить уведомление о подключении USB-накопителя к моему ПК в Windows Vista (или win7)

Ответы [ 4 ]

12 голосов
/ 04 апреля 2009

В Codeproject есть класс DriveDetector , который звучит так, как будто он делает то, что вам нужно.

3 голосов
/ 04 апреля 2009

Посмотрите на WM_DEVICECHANGE . Это сообщение должно быть отправлено, когда диск вставлен.

1 голос
/ 04 апреля 2009

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

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

0 голосов
/ 29 августа 2011

Я написал модуль powershell, который использует System.Management.ManagementEventWatcher и класс WMI Win32_VolumeChangedEvent для отображения новых событий, которые вы можете зарегистрировать в рамках powershell, охватывающих удаление устройства, добавление и т. Д. Вы должны быть в состоянии выяснить соответствующую сантехнику из мой пост в блоге:

http://www.nivot.org/nivot2/post/2008/08/16/AutoMountunmountNewPSDrivesForRemovableDrivesAndNetworkSharesInPowerShellV2.aspx

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

Надеюсь, это поможет.

...