Aide sur les api c++ svlp ?
Résolu
chabacha109
Messages postés
268
Date d'inscription
Statut
Membre
Dernière intervention
-
swed -
swed -
Bonjour, a tous
bref mon code :
GetAsyncKeyState(i)==-32767//cad que la touche ayant le code d'acii i est presser
fonctionnement: l'orsque j'appuie sur les touches 1,2,3,4....9,0 en paralléle avec le shift il affiche l'entier presser ,(les touches concernées ne son pas les verr num ok)
bon, ca marche() mais ya quelle que chose qui ma bloqué , j'explique
lorsque j'appuie sur le shift et la touche "2"(par exemple) dans une période de temps sans lever la main il m'affiche
2 seulement
en principe ça me donne une chose comme ceci:2222222222222
je veux savoir c'est quoi le probléme exactement ???
merci d'avance :))))
bref mon code :
#include<iostream.h> #include<windows.h> #include <stdio.h> void main() { while(1) { for(int i=48;i=57;i++) { if(GetAsyncKeyState(i)==-32767&&GetAsyncKeyState(16)==-32767)//le 16 est le code d'acii de shift et les 48 jusqu'à 57 sont les code d'acii des touches 1,2,3,4....9,0 printf("%c \n",i) ; } } }
GetAsyncKeyState(i)==-32767//cad que la touche ayant le code d'acii i est presser
fonctionnement: l'orsque j'appuie sur les touches 1,2,3,4....9,0 en paralléle avec le shift il affiche l'entier presser ,(les touches concernées ne son pas les verr num ok)
bon, ca marche() mais ya quelle que chose qui ma bloqué , j'explique
lorsque j'appuie sur le shift et la touche "2"(par exemple) dans une période de temps sans lever la main il m'affiche
2 seulement
en principe ça me donne une chose comme ceci:2222222222222
je veux savoir c'est quoi le probléme exactement ???
merci d'avance :))))
A voir également:
- Aide sur les api c++ svlp ?
- Naz api - Accueil - Piratage
- Api injoignable cyberghost ✓ - Forum Réseaux sociaux
- Supported api 3 en français - Forum Mobile
- Steam api dll - Forum Windows
- Mon ordi ne trouve pas steam_api.dll - Forum Windows 7
1 réponse
Bonjour,
Il suffit de lire la doc de l'API qui précise, concernant la valeur de retour :
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState
Autrement dit, l'octet de poids fort est 1 si la touche est couramment enfoncée et 0 dans le cas contraire. L'octet de poids faible est 1 si la touche était enfoncée depuis le dernier appel à GetAsyncKeyState().
Dans ton cas, tu testes "=-32767", donc tu testes le fait que les deux octets sont à 1.
Il faudrait tester uniquement le premier octet du short récupéré.
Cordialement, M.
Il suffit de lire la doc de l'API qui précise, concernant la valeur de retour :
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState
Autrement dit, l'octet de poids fort est 1 si la touche est couramment enfoncée et 0 dans le cas contraire. L'octet de poids faible est 1 si la touche était enfoncée depuis le dernier appel à GetAsyncKeyState().
Dans ton cas, tu testes "=-32767", donc tu testes le fait que les deux octets sont à 1.
Il faudrait tester uniquement le premier octet du short récupéré.
Cordialement, M.
ils ont me dit sur un forum quelle va tester sur le bouton, si elle retourne -32767 donc le bouton ayons le code ascii x est activé ,
je ne sait rien comment tester sur le bit du poids faible et fort ????
mais j'ai essayé moi même :
#include<iostream.h>
#include<windows.h>
#include <stdio.h>
void sleep(..)
{.....}
void main()
{
while(1)
{
for(int i=48;i=57;i++)
{
if(GetAsyncKeyState(i)&&GetAsyncKeyState(16))
printf("%c \n",i) ;
sleep(1);//attente active 1ms
}
}
}
il marche bien heureusement mais
1- je veux savoir comment tester sur les bit du poids fort et faible (comme vous dite )
2-quelle est le rapport entre la version 2 et 1
3-merci de ta réponse :)))
https://forums.commentcamarche.net/forum/affich-20769107-aide-sur-les-api-c