Sto cercando un frammento di codice C# per darmi una notifica quando un drive USB è inserito nel mio PC in Windows Vista (o win7)ricerca di codice C# per il rilevamento di un'unità rimovibile (USB flash)
risposta
C'è una classe chiamata DriveDetector su Codeproject che suona come fa quello che vuoi.
Vedere WM_DEVICECHANGE. Questo messaggio deve essere inviato quando viene inserita un'unità.
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.
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:
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.