Mettre un caractère variable entre apostrophe

Fermé
Keep Surfing - 26 juil. 2010 à 15:56
 Keep Surfing - 27 juil. 2010 à 09:50
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.

1 réponse

varfendell Messages postés 3255 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 666
26 juil. 2010 à 16:15
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
26 juil. 2010 à 18:12
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 3255 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 666
26 juil. 2010 à 19:10
.... 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
26 juil. 2010 à 19:37
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 3255 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 8 février 2020 666
27 juil. 2010 à 09:13
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
27 juil. 2010 à 09:50
Merci beaucoup pour ton aide, je vais tester ça!!
0