Mettre un caractère variable entre apostrophe

Keep Surfing -  
 Keep Surfing -
Bonjour,

je suis en train d'écrire un petit programme qui ferait en quelque sorte un petit brut force. C'est à dire que je veux renvoyer toutes les combinaisons de caractères possibles (3 caractères maximum) jusqu'à trouver celle attendue.

Je veux gérer celà grace à deux thread, l'une qui attend la chaine de caractère, et l'autre qui les teste toutes.
J'ai malheureusement un petit problème dû à mes faibles connaissances:

=> comment renvoyer un caraère variable via "keybd_event" ?
Je m'explique, cette fonction attend un caractère de la façon suivante: 'a' cependant, j'utilise des boucles for pour parcourir une grande partie des caractères ascii. Donc ma question est comment mettre mes paramètres de mes boucles for entre les apostrophes ' '

Merci pour ceux qui prendront le temps de m'apporter leur aide, si ce n'est pas clair, posez-mi des questions.

A voir également:

1 réponse

varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
Bonjour,

Peut tu mettre le code que tu as deja commencé a faire?

Sinon je vois pas trop ton probleme....si ça vient du faite que tu utilise un String, et donc que le ' fini le String, il suffit de mettre un \ devant
0
Keep Surfing
 
pour le code, je l'ai pas sous la main, c'est sur un autre pc, je le mettrai demain.

en fait mon problème, c'est que je dois mettre ma variable (int i) entre apostrophes pour signifier "caractère", mais je peux pas le faire comme ça: 'i' parce que là c'est compris comme le caractère i et non pas la variable i.
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
.... tu veut la mettre comme un caractere mais entre guillemet il la comprend comme un caractere alors que tu veut signifier variable...j'avou ne pas tout comprendre
0
Keep Surfing
 
ben en fait je voudrai faire comme:
int i=0;
for(i; i<10; i++){
printf("%d", i);
}
sauf que là j'utilise la fonction keybd_event:
int i=0;
for(i; i<10; i++){
keybd_event(??,0,0,0);
}

le premier argument doit être un caractère, mais est-ce que ça marcherai si je mettais juste (i,0,0,0), est-ce qu'il comprendrai que c'est la position dans la table ascii?
0
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
 
le mieux c'est d'essayer, mais je pense que tu dois mettre le numéro ascii (105) pour qu'il le comprenne.

// Simule l'appui de la touche "i"
Keybd_event(105,0,0,0);
// Simule le relâchement de la touche "i"
Keybd_event(105,0,KEYEVENTF_KEYUP,0);


PS (ça peut toujours servir ) :
Pour trouver le code touche virtuel d'une touche du clavier, tu peux utiliser un Memo et mettre le code suivant dans son événement OnKeyDown :

procedure TForm1.Memo1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
ShowMessage(IntToStr(Key));
end;
0
Keep Surfing
 
Merci beaucoup pour ton aide, je vais tester ça!!
0