2009-04-03 7 views

risposta

3

Vedere WM_DEVICECHANGE. Questo messaggio deve essere inviato quando viene inserita un'unità.

1

So che questo non è esattamente quello che hai chiesto, ma se vuoi verificare quali dispositivi sono disponibili in qualsiasi momento, c'è un altro modo. È possibile utilizzare le classi WMI nel System.Management namespace, ho utilizzato questo metodo e funziona bene.

Se si dà un'occhiata a this answer, viene mostrato come enumerare tutte le unità sul sistema. È quindi possibile dare un'occhiata al tipo di unità per determinare se si tratta o meno di una chiavetta USB.

0

Ho scritto un modulo PowerShell che utilizza un System.Management.ManagementEventWatcher e la classe WMI Win32_VolumeChangedEvent per visualizzare nuovi eventi che è possibile registrare all'interno di PowerShell che copre rimozione del dispositivo, aggiunta ecc. Dovresti essere in grado di individuare l'impianto idraulico pertinente da questo post del blog di mine:

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

Si dovrebbe essere in grado di cablare un evento per nuove unità in meno di dieci righe di C# utilizzando i metodi utilizzati nello script di cui sopra.

Spero che questo aiuti.