Comment détecter à l'aide de c# si une clé usb est branchée sur un port USB?
Est-il un moyen de savoir si dans un LAN quelqu'un se branche une clé usb sur le port USB?
Par programmation (en C# de préférence) ou par le biais de certains outils. Au fond, j'imagine une application client se trouve sur chaque terminal et surveille les ports USB et envoie les informations au serveur.
un.) Puis-je obtenir les détails du fichier(s) copié?
b.) Est-il un moyen de le faire sans une application client?
MODIFIER
Je ne veux pas désactiver le port USB entièrement. de ses pour être sur un besoin d'avoir. Fondamentalement, je veux juste les utilisateurs sur le réseau local pour partager des données de manière responsable et de savoir que tout ce que les données sont transférées est contrôlée et enregistrée et peut être remis en cause plus tard.
OriginalL'auteur user20358 | 2008-11-07
Vous devez vous connecter pour publier un commentaire.
[En supposant que Windows, compte tenu de la C# remarque. Veuillez étiqueter en conséquence]
Oui, c'est possible. Et il est possible d'obtenir les détails du fichier. Il faudra de la programmation. Montre pour WM_DEVICECHANGE et ré-énumérer les lecteurs par la suite. Il vous USB clés usb, mais aussi les cartes SD. Je m'attends que c'est un bonus pour vous.
Pour obtenir plus de détails une fois que vous connaissez un lecteur a est arrivé, utilisez Système.IO.FileSystemWatcher
Mise à jour
J'ai trouvé une meilleure solution - si vous vous inscrivez pour le volume de l'interface les notifications, vous obtiendrez le volume de chemin d'accès pour le nouveau lecteur.
Tout d'abord, créez un
DEV_BROADCAST_DEVICEINTERFACE
avecdbcc_classguid=GUID_DEVINTERFACE_VOLUME
. Puis la transmettre à desRegisterDeviceNotification()
. Vous serez de nouveau obtenir un WM_DEVICECHANGE mais vous pouvez maintenant lancer le lParam à partir du message deDEV_BROADCAST_DEVICEINTERFACE*
.Vous pouvez passer à la
dbcc_name
vous recevez àGetVolumeNameForVolumeMountPoint()
. Vous pouvez également passer toutes les lettres de lecteur deGetLogicalDriveStrings()
àGetVolumeNameForVolumeMountPoint()
. Vous aurez une correspondance de nom de volume; c'est le nouveau lecteur.OriginalL'auteur MSalters
Également consulter le registre où toutes les informations sont stockées sur les périphériques usb.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB
Vous pouvez brancher dans les changements de cette clé dans le registre et la loi sur que.
Cet utilitaire gratuit sont d'une grande aide lorsque pooking autour de: http://www.nirsoft.net/utils/usb_devices_view.html
Vous pouvez sélectionner un lecteur usb, choisissez d'ouvrir la clé de registre pour que le lecteur et d'activer/de désactiver le périphérique et beaucoup plus.
Dans le registre, vous pouvez voir si le périphérique est connecté, si c'est des appareils de stockage de type et d'autres interressant d'informations. Il est facile de filtrer les regkeys pour obtenir juste usb-appareils de stockage des disques, puis accrocher et attendre des modifications (connexion/déconnexion).
Avec Windows Management Instrumentation vous pouvez vous inscrire pour recevoir des événements de Registre:
http://msdn.microsoft.com/en-us/library/aa393035(SV.85).aspx
Système d'archivage.De la gestion .Net
OriginalL'auteur Stefan
Si ses un environnement de petite taille et que vous voulez éviter tous les périphériques usb, puis vous pouvez désactiver les ports usb dans le gestionnaire de périphériques, assurez-vous qu'aucun des utilisateurs sont des administrateurs sur la machine et ce qui devrait éviter tous usb.
Et si vous êtes vraiment paranoïaque à ce sujet, il suffit d'ouvrir les machines et brancher les ports.
OriginalL'auteur Jimoc
Ont un coup d'oeil à cet article. Explique les messages et comment travailler avec eux.
La détection de retrait d'un lecteur usb
OriginalL'auteur Steve
Je n'ai jamais utilisé, mais les gens de chez ic#code (sharpdevelop) ont un usblib. Peut-être que cela peut vous aider.
http://www.icsharpcode.net/OpenSource/SharpUSBLib/default.aspx
OriginalL'auteur Bruno Shine
Êtes-vous essayer de prévenir l'utilisation de clés USB? Si oui, il ya une Stratégie de Groupe qui permet de limiter l'accès.
OriginalL'auteur Nick Berardi