50 votes

Travailler avec des périphériques USB dans .NET

En utilisant .Net (C), comment pouvez-vous travailler avec des périphériques USB?

Comment pouvez-vous détecter les événements USB (connexions/déconnexions) et comment communiquez-vous avec les appareils (lire/écrire).

Existe-t-il une solution native .Net pour ce faire ?

29voto

Sofox Points 1201

J'ai essayé d'utiliser SharpUSBLib et il a foiré mon ordinateur (besoin d'une restauration du système). Il est arrivé à un collègue sur le même projet aussi.

J'ai trouvé une alternative dans LibUSBDotNet: http://sourceforge.net/projects/libusbdotnet Havn't l'a utilisé beaucoup encore, mais semble bon et récemment mis à jour (contrairement à Sharp).

23voto

Jon Limjap Points 46429

Il n'est pas natif (par exemple, Système de bibliothèques) solution pour cela. C'est la raison pour laquelle SharpUSBLib existe, comme l'a mentionné moobaa.

Si vous souhaitez restaurer votre propre gestionnaire de périphériques USB, vous pouvez consulter la classe SerialPort de Système.IO.Les Ports.

16voto

Syn Points 131

J'ai utilisé le code suivant pour détecter quand les périphériques USB ont été branchés et débranchés de mon ordinateur:

Vous devez vous assurer d'appeler la méthode D'élimination () lors de la clôture de votre demande. Dans le cas contraire, vous recevrez une erreur d'objet COM au moment de la fermeture.

11voto

moobaa Points 3794

5voto

Klaus Points 1023

Je le recommande LibUSBDotNet, la bibliothèque, j'ai été à l'aide de 2 ans. Si vous devez travailler avec un périphérique USB (envoyer des demandes, les réponses), cette bibliothèque était la meilleure solution que j'ai pu trouver.

Pour:

  • A toutes les méthodes que vous avez besoin pour travailler de façon synchrone ou asynch mode.
  • Code Source fourni
  • Assez d'échantillons pour commencer à l'utiliser tout de suite.

Inconvénients:

  • Une mauvaise documentation (c'est un problème commun pour les projets open source). Fondamentalement, vous pouvez trouver juste une description commune de méthodes dans le fichier d'aide CHM et c'est tout. Mais je trouve toujours fourni des échantillons et le code source est assez pour le codage. Juste, parfois, je vois un comportement étrange et veulent savoir pourquoi il a été mis en œuvre dans ce sens et ne peut pas obtenir même un soupçon...
  • Semble non pris en charge, pas plus. La dernière version a été publiée en octobre 2010. Et il est difficile d'obtenir des réponses parfois.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X