Keybd_event ? [Résolu]

Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
- - Dernière réponse : ncoder
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
- 23 juin 2005 à 15:12
Bonjour à toi lecteur,

Peux-tu m'expliquer ce problème là s'il te plait ?

Regarde, j'ai fait ce petit programme :

int main()
{
char rep[50];
printf("Texte : ");
gets(rep);
Tape(rep);


return 0;
}

<HR>
void Tape (const char txt[30000])
{
Sleep(2000);
int x;
char lettre[3];
int i;


for (i=0; i<strlen(txt)+1; i++) {


strncpy(lettre, &txt[i], 1);

if (lettre[0]=='\n') x=10;
if (lettre[0]==' ') x=20;
if (lettre[0]=='0') x=30;
if (lettre[0]=='1') x=31;
if (lettre[0]=='2') x=32;
if (lettre[0]=='3') x=33;
if (lettre[0]=='4') x=34;
if (lettre[0]=='5') x=35;
if (lettre[0]=='6') x=36;
if (lettre[0]=='7') x=37;
if (lettre[0]=='8') x=38;
if (lettre[0]=='9') x=39;
if (lettre[0]=='a') x=65;
if (lettre[0]=='b') x=66;
if (lettre[0]=='c') x=67;
if (lettre[0]=='d') x=68;
if (lettre[0]=='e') x=69;
if (lettre[0]=='f') x=70;
if (lettre[0]=='g') x=71;
if (lettre[0]=='h') x=72;
if (lettre[0]=='i') x=73;
if (lettre[0]=='j') x=74;
if (lettre[0]=='k') x=75;
if (lettre[0]=='l') x=76;
if (lettre[0]=='m') x=77;
if (lettre[0]=='n') x=78;
if (lettre[0]=='o') x=79;
if (lettre[0]=='p') x=80;
if (lettre[0]=='q') x=81;
if (lettre[0]=='r') x=82;
if (lettre[0]=='s') x=83;
if (lettre[0]=='t') x=84;
if (lettre[0]=='u') x=85;
if (lettre[0]=='v') x=86;
if (lettre[0]=='w') x=87;
if (lettre[0]=='x') x=88;
if (lettre[0]=='y') x=89;
if (lettre[0]=='z') x=90;
if (lettre[0]=='*') x=107;
if (lettre[0]=='+') x=108;
if (lettre[0]=='-') x=109;
if (lettre[0]=='.') x=110;
if (lettre[0]=='/') x=111;
keybd_event(x,0,0,0);
keybd_event(x,0,KEYEVENTF_KEYUP,0);
}

}

Tu as pu deviner que c'était pour simuler au clavier le texte envoyé à Tape().

Or, si je fais ceci : Tape("Bonjour");
Il simule "Bonjourr"...
Si je fais "Ciao"...

Tape() me simule toujours la dernière lettre 2 fois !

Pour quelle raison?

Merci à pour probables réponses...
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
126
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
11 juillet 2006
3
Merci
Bonjour


Enleve le +1 dans ta boucle for


Qd tu tape "bonjour" ( 7 caracteres) ton for va de 0 à 7+1 donc 8, or comme il commence à compter à partir de 0 tu as 8 caractéres recopier au lieu de 7.


Tu connais surement en math les problemes de piquets et d'intervalle entre les piquets, c'est pareil



TOCHE

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 187 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ricky78
Messages postés
244
Date d'inscription
vendredi 6 mai 2005
Statut
Membre
Dernière intervention
6 avril 2008
1
0
Merci
Exact !

Merci
Commenter la réponse de ncoder