begin process at 2010 02 10 11:52:17
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Périphériques

 > LIBRAIRIE RAWINPUT .NET

LIBRAIRIE RAWINPUT .NET


 Information sur la source

Note :
10 / 10 - par 3 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Périphériques Source .NET ( DotNet ) Classé sous :usb, hid, souris, clavier, input Niveau :Expert Date de création :26/07/2007 Date de mise à jour :03/02/2010 18:17:39 Vu / téléchargé :9 793 / 578

Auteur : Lutinore

Ecrire un message privé
Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
RawInput .NET est un wrapper managé de l'API Win32 du même nom, qui permet de gérer tous les périphériques répondant à la norme USB/HID ainsi que de gérer plusieurs souris ou plusieurs claviers. (chose que même DirectInput ne sait pas faire.)

J'ai fait le choix de faire un wrapper assez proche de la librairie originale, (une unique classe et un seul évènement statique pour tous les types de périphériques) ce qui permet de garder de bonnes performances et ne nécessite pas d'apprentissage si on connait la version Win32.


 Conclusion

La documentation n'est pas compilée, l'éditeur de Visual Studio n'affiche qu'une partie de l'aide, utilisez par exemple l'explorateur d'objets pour visualiser certaines remarques contenues dans les commentaires XML.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

27 juillet 2007 08:45:55 :
Correction d'un bug mineur.
28 juillet 2007 10:56:58 :
La description du device n'est plus une chaine vide sous Windows XP.
03 février 2010 18:17:40 :
Version 1.1

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) HOOK CLAVIER EN C# par bmastar
Source avec Zip Source avec une capture Source .NET (Dotnet) HOOK CLAVIER EN C# par shadow1779
Source .NET (Dotnet) DRIVER MODBUS RS232 ASCII LRC par x2bf3
Source avec Zip Source .NET (Dotnet) HOOK CLAVIER par damned3
Source avec Zip Source avec une capture Source .NET (Dotnet) POST-TRAITEMENT NMEA/GPS: FILTRAGE DES POINTS, EXPORT KML/GP... par jray

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) HOOK CLAVIER EN C# par bmastar
Source avec Zip Source .NET (Dotnet) SIMULATION D'ÉVÉNEMENTS CLAVIER ET SOURIS par mastercatz
Source avec Zip Source avec une capture Source .NET (Dotnet) DÉSACTIVATION CLAVIER ET SOURIS par Bidou
Source avec Zip Source .NET (Dotnet) DX9 : TUTORIEL 5 - DIRECTINPUT : SOURIS ET CLAVIER par clemox
Source avec Zip Source avec une capture Source .NET (Dotnet) BIG BROTHER IS WATCHING YOU par pisko

Commentaires et avis

Commentaire de Bidou le 26/07/2007 11:46:29 administrateur CS

Hé bien, elle s'est fait attendre cette première source dit-moi !
On espère que de similaires arriveront bientôt ;-)

Commentaire de Lutinore le 26/07/2007 12:20:24 administrateur CS

Dans 4 ans la prochaine :D

Commentaire de coq le 26/07/2007 18:57:05 administrateur CS

Lol
Bien, j'ajoute celà à la liste des trucs à regarder, ça peut être bon à savoir :-)

Commentaire de TheSin le 27/07/2007 10:22:57

Sympa :-)
Je ne connaissais pas RawInput, ça peut servir :-)
DirectInput gère plusieurs claviers/souris, mais ne permet pas de les utiliser en même temps, un seul périphérique de même type à la fois :(.
Pratique.

Commentaire de Lutinore le 27/07/2007 10:38:32 administrateur CS

TheSin > merci, oui c'est bien de cela que je parle :

"On Microsoft Windows XP, DirectInput enumerates only one mouse and one keyboard device, referred to as the system mouse and the system keyboard. These devices represent the combined output of all mice and keyboards respectively on a system. For information about how to read from multiple mice or keyboards individually on Windows XP, see the WM_INPUT documentation."

Commentaire de Lutinore le 01/08/2007 14:15:20 administrateur CS

Microsoft a sorti récemment MultiPoint SDK une sorte de wrapper autour de l'API RawInput pour .NET 3.0 (WPF) uniquement mais ça semble moins souple et moins rapide que ma petite librairie. :p

Commentaire de coq le 01/08/2007 18:59:27 administrateur CS

Exactement ! :p

Commentaire de djine le 27/10/2008 22:50:01 10/10

Très bonne source, je cherchais ça depuis longtemps !

Cependant, j'ai un tabletPC, et lorsque je tente d'utiliser le stylet et la souris en même temps, l'un ou autre se met attente jusqu'à ce qu'un nouvel événement se produise (exemple : MouseUp ou MouseDown).

Donc pas de possibilité d'utiliser le mouvement du stylet et de la souris en parallèle.

Si quelqu'un a une idée, je suis preneur !

9/10.

Commentaire de Lutinore le 28/10/2008 13:10:17 administrateur CS

Merci.. Je ne sais pas comment Windows gère le stylet, d'après ce que tu dis il simule une souris mais je ne vois pas pourquoi ça interfère avec l autre souris.

Avec ce code tu peux énumérer les périphèriques sur ton système.

foreach( RawDevice device in RawDevice.GetRawDevices( ) )
{
    RawInfo info = device.GetRawInfo( );
    string desc = String.Format
    (
        "Description: {0}\r\n" +
        "Handle: {1}\r\n" +
        "Type: {2}\r\n" +
        "Page: {3}\r\n" +
        "Usage: {4}",
        device.Description,
        device.Handle,
        device.RawType,
        info.UsagePage,
        info.Usage
    );
    MessageBox.Show( this, desc, "Info" );
}

Commentaire de djine le 28/10/2008 22:41:35

Voila la liste des devices de type mouse que j'obtiens sur mon portable sens aucune souris branché :
- Description: Wacom Mouse,Handle: 65615, Type: Mouse, Page: 1, Usage: 2 (WACOM -> tablet)
- Description: Souris HID,Handle: 65613, Type: Mouse, Page: 1, Usage: 2
- Description: Souris HID,Handle: 65611, Type: Mouse, Page: 1, Usage: 2
- Description: Synaptics PS/2 Port TouchPad,Handle: 65609, Type: Mouse, Page: 1, Usage: 2

Le mouvement du stylet ou touché génèrent bien l'event RawDevice_RawInput(...).
Il est d'ailleur tout a fait possible de recupèrer les coordonnées du stylet avec
(MouseData )args.GetRawData(), cependant, ce sont des coordonnées absoluts (contrairement à une souris). Ces coordonnées sont d'ailleurs bien plus précises que la souris. (X allant de 0 à 10000 pr donner une ordre d'idée).

En revanche, les soucis arrivent lorsque que l'on essai de récupérer des infos sur la source des donnée envoyé par l'event RawDevice_RawInput(). Dans le cas d'un mouvement de stylet, le handle est égale à 0, et il est impossible de vérifier la source des données par un GetRawDevice(), cela lance une exeption.

Comment se fait il que le handle est détècté correctement lors de l'initialisation :
ex : Description: Wacom Mouse,Handle: 65615, Type: Mouse, Page: 1, Usage: 2
Et que lors de l'evenement RawDevice_RawInput(), le handle soit 0.

Merci pour ton aide !

Commentaire de Lutinore le 29/10/2008 13:24:37 administrateur CS

Un handle à zéro signifie un device virtuel généré par Windows ou un device simulé depuis un autre et dans ce cas GetRawDevice( ) renvoie null puisque le device n'existe pas, c'est ce qui provoque une exception dans ton code. Mais même avec un handle à zéro tu devrais pouvoir utiliser ce device correctement sans qu'il interfère avec les autres souris.

Essaye d'utiliser le flag InputMode.BackgroundMode dans RegisterRawDevices pour voir si tu reçois les events du stylet avec son vrai handle.

Sinon tourne toi vers des API dédiées au tablet PC comme "RealTimeStylus".

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Simulation clavier/souris [ par Ordinastie ] Bonjour.Voial, mon but est de simuler l'appui d'une touche ou d'un séquence de touches du clavier.M'étant penché du coté de l'API Bloquer la souris et le clavier [ par sayed2005 ] je cherche comment bloquer la souris et le clavier d'un PC,a l'instar de NetS Récupérer positions souris et frappes clavier [ par guillaume_quest ] Bonjour à tous, Je voudais connaître une fonction qui permet de récupérer la position de ma souris par rapport au haut de la fenêtre (ou en haut de ma [Souris et Clavier] [ par KqMii ] Bonjours, J'aimerais savoir comment je pourais par exemple quand j'appuis sur la touche F4 cela simule un clic souris et Quand j'appuis sur F3 Cela et clavier et souris sans fil [ par ecr ] ecrBonsoir,Je viens d'acquérir un clavier et une souris sans fil Logitech Deluxe 660 Cordless Desktop, mais je n'ai aucun voyant qui m'indique si Verr problème de gestion de clavier et de souris [ par brunhoff ] bonjour dans un programme j'utilise un clavier visuel et l'utilisation du clavier "physique" pour pouvoir jouer à 2 mais dès que je clique s Désactiver clavier [ par onde2chockgbkgb ] Bonjour à tous. Avant toute chose, je voudrais au préalable m'excuser de poster ici car je ne pense pas que ma demmande soit orienté dans le sens de lister les peripheriques usb de type imprimante ou copieur [ par benjion ] Bonjour,gros probleme pour demarrer mon code  je voudrais juste dans un premier temps qu'au forme load s'inscrive dans une list box d'un form l'enssem Souris [ par cispo ] Bonjour, Je voudrais savoir si il est possible d'empécher la souris de sortir d'un textBox tant que l'utilisateur n'a pas validé ce qu'il a Interdire la selection dans une listbox avec la souris en SelectionMode.One [ par VHSeifer ] BonsoirJuste un détail, mais je voudrais bien savoir si c'est possible "d'annuler" en quelque sorte la selection d'un item d'une listbox si


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,889 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales