Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev
WinDev Forum d'entraide sur la programmation en WinDev
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 09/01/2013, 19h21   #1
hoves
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Par défaut Gestions padles externes

Bonjour à toutes et tous,

Je recherche une personne pouvant m'aider à développer quelques lignes de code en Windev 17 pour la gestion de plusieurs claviers numériques (padle).
Je souhaite réaliser une application pour coter des photos à partir d'un programme Windev, càd utiliser 3 padles externes supplémentaires au clavier (qui lui gère le programme) et les padles uniquement la saisie des points de 0 à 9.
Le programme étant chargé de récolter ces différents points et d'en faire la somme sous forme d'une variable que je récolterai dans mon programme pour l'affichage.

Merci d'avance de votre réponse
hoves est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 08h18   #2
frenchsting
Expert Confirmé
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 1 806
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 1 806
Points : 3 151
Points : 3 151
Si tes padles sont reconnus comme claviers, windev ne pourra pas les différencier. A mon avis (à confirmer par d'autres), il faudra passer par des API système pour trouver l'origine de la saisie.
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
Pas de question par MP s'il vous plait. Le forum est fait pour cela...

Make it real not fantasy
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 08h52   #3
hoves
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Bonjour frenchsting,

En effet par Windev je ne suis pas arrivé.
Je crois aussi qu'il faut passer par des API, mais je ne m'y connais pas du tout.
hoves est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 09h00   #4
themayu
Membre confirmé
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 92
Points : 222
Points : 222
Bonjour,

Vous n'aurez guère plus de chance via les API : Différencier 2 claviers différents

Peut être en utilisant des périphériques qui ne sont pas détectés comme des claviers.
themayu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 09h58   #5
hoves
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Bonjour themayu,

Merci pour ce lien, mais je suis certain contrairement à ce que dit l'article qu'il y a moyen de différencier les claviers.
J'ai une application faite en "Borland/Embarcadero Builder" qui fait exactement ce que j'ai besoin. Le problème c'est que je dois utiliser 2 applications pour obtenir mes résultats.
hoves est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 10h31   #6
themayu
Membre confirmé
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 92
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 92
Points : 222
Points : 222
J'ai peut être effectivement répondu trop vite, on doit pouvoir passer par les fonctions raw input de windows, un exemple documenté en C#.

Plus qu'à le traduire en windev !
themayu est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 10/01/2013, 10h54   #7
OnePoint
Membre expérimenté
 
Inscription : septembre 2010
Messages : 208
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 208
Points : 535
Points : 535
Bonjour à tous,

[EDIT] themayu a répondu plus vite [/EDIT]

Sous Windows, les périphériques HID (Human Interface Device) peuvent être manipulés par une application via les fonctions de l'API Raw Input.
http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
A mon avis, ce n'est pas à la portée d'un "nouveau né".

Il y a un projet C# qui peut servir d'exemple:
Using Raw Input from C# to handle multiple keyboards
http://www.codeproject.com/Articles/...tiple-keyboard

Si on veut éviter .NET, on peut aussi regarder cet exemple en C qui permet de récupérer les inputs de Joystick.
Using the Raw Input API to Process Joystick Input
http://www.codeproject.com/Articles/...Joystick-Input

Pour gagner du temps, on peut utiliser une application pour gérer des macros, comme par exemple le freeware HID Macros:
http://www.hidmacros.eu/whatisit.php


@hoves
Je pense que tu utilises ce genre de programme (peux-tu nous donner son nom)
Et pourquoi n'est-ce pas adapté ?


(pour information)
A minima, Windows est prévu pour reconnaître les types de HID suivants:
• Pointer
• Mouse
• Joystick
• Game pad
• Keyboard
• Keypad
• Consumer audio control

Un lecteur de code barres USB est probablement géré comme un HID.
OnePoint est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 11h30   #8
hoves
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Merci themayu et OnePoint pour vos exemples,
Mais c'est bien là que je bloque
La programmation en Windev ça va mais le reste
Le programme que j'utilise actuellement est celui de la firme rmf products => rfmproducts.com
Il fonctionne bien, mais il est en anglais et il faut que j'utilise un autre programme pour faire défiler les photos à juger d'où un second PC.
Je souhaiterais faire cette tâche uniquement en Windev, càd récupérer les chiffres des padles et gérer tout le reste avec mon application.
hoves est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2013, 14h09   #9
OnePoint
Membre expérimenté
 
Inscription : septembre 2010
Messages : 208
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : septembre 2010
Messages : 208
Points : 535
Points : 535
Citation:
Envoyé par hoves Voir le message
Mais c'est bien là que je bloque
La programmation en Windev ça va mais le reste
Utiliser les fonctions de l'API Raw Input directement en Windev, ça va demander un gros travail, et je dis ça pour un développeur qui y comprend quelque chose.

Si tu n'as pas beaucoup de temps devant toi, alors regarde de plus près le freeware HID Macros dont je t'ai parlé. Cet outil est de plus bas niveau que l'application que tu utilises.

A l'origine il était conçu pour interfacer des HID avec un simulateur de vol.
Il permet d'exécuter des actions prédéfinies quand certaines touches sont enfoncés.
Même s'il est assez limité, il peut exécuter un programme externe, ou exécuter un script VBS.
Son avantage principal est son interface utilisateur qui simplifie la reconnaissance des différents HID et l'association entre un événement et une macro.

Dans le tutoriel dont je te donne le lien, l'auteur propose une solution simple et rapide à mettre en oeuvre: utiliser HID Macros avec un autre utilitaire (le fameux) NirCmd.
[Tutorial] Individual hotkeys with multiple keyboards
http://deskthority.net/workshop-f7/i...oards-t11.html

On peut reprocher à cette solution de ne pas être codée (c'est surtout du paramétrage et de la configuration), mais elle semble opérationnelle et facile à réaliser, même par des néophytes.

Le lien pour NirCmd (outil en ligne de commande):
http://www.nirsoft.net/utils/nircmd.html

NirCmd est un formidable "couteau suisse". La liste des fonctions:
http://www.nirsoft.net/utils/nircmd2.html#using

Alors comment communiquer à ton application Windev, un n° de keypad et un chiffre ?

Avec NirCmd, tu peux très facilement envoyer un message windows à la fenêtre principale de ton application qui affiche les photos.

Exemple pour envoyer à la calculatrice Windows le message de fermeture de la fenêtre:
nircmd.exe win sendmsg title "calculator" 0x10 0 0

Pour revenir à ton pb...
Tu choisis et tu utilises un n° de message spécifique à ton application (c'est un nombre, supérieur à 2324, car en dessous ce sont des codes de message déjà utilisés par Windows et Windev)
Les 2 autres arguments peuvent désigner le n° de keypad et le chiffre de la touche enfoncée.

Au niveau de ton application Windev, tu n'as plus qu'à surveiller l'arrivée des messages windows avec ton n° de message spécifique.
Pour ça, il faut utiliser la fonction Evénement et récupérer le n° de keypad et la valeur.
http://doc.pcsoft.fr/fr-FR/?3015011&...9v%C3%A9nement

Voilà c'est une piste possible, probablement la plus facile.
OnePoint est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/01/2013, 14h33   #10
hoves
Invité de passage
 
Inscription : septembre 2008
Messages : 5
Détails du profil
Informations forums :
Inscription : septembre 2008
Messages : 5
Points : 0
Points : 0
Un grand merci OnePoint je vais décortiquer tout cela et voir si j'arrive à une solution
Bonne journée
hoves est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 18h32.


 
 
 
 
Partenaires

Hébergement Web