Hawatak
Messages postés4Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention18 avril 2009
-
14 avril 2009 à 13:45
Spasher
Messages postés14Date d'inscriptionjeudi 25 juin 2009StatutMembreDernière intervention 3 juillet 2009
-
3 juil. 2009 à 14:20
Bonjour,
Alors voilà, j'ai créé un petit programme qui simule l'appuie de certaines touches sur le clavier :
Cela fonctionne très bien dans notepad, ou n'importe quel autre programme, mais pas dans un jeu DirectX (en l'occurence ici : Rappelz). Comment faire pour que les ordres claviers soient pris en compte par une application DirectX ??
Merci de votre aide :)</windows.h></cstdlib></stdlib.h></stdio.h>
Cela fonctionne très bien dans notepad, ou n'importe quel autre programme, mais pas dans un jeu DirectX (en l'occurence ici : Rappelz). Comment faire pour que les ordres claviers soient pris en compte par une application DirectX ??
Spasher
Messages postés14Date d'inscriptionjeudi 25 juin 2009StatutMembreDernière intervention 3 juillet 20092 3 juil. 2009 à 14:20
Slt,
Tu utilises quoi comme IDE ? Moi, c'est Code::Block.
Je suis dans la même impasse que toi ! J'arrive à simuler le clavier sur des programmes comme Bloc-Note, et Calculatrice...
Apparemment pour qu'une appliaction DirectX prenne en compte les événements du clavier, il faut utiliser "DirectInput" ?!?
Je suppose qu'il faut soit utiliser VB ou DirectX, pour réussir à faire un tel programme...( Ce n'est qu'une supposition )
Bref, voilà un lien qui pourrait te donner une piste :
Si tu trouves quelque chose, fait le moi savoir STP. Ci-joint mon programme qui permet d'écrire " bonjour hawatak " avec n'importe quelle fenêtre sélectionné ( Ex: Bloc-Note ) dans un temps de 5 secondes
Code C - IDE ( Code::Block ):
#include <windows.h>
#include <stdio.h>
#include <conio.h>
int main(int argc, char * argv[])
{
HWND hFore;
char szBuffer[128];
int iNbChar;
printf("Vous avez 5 secondes pour activer la fenetre dont vous voulez connaitre le class name\r\n");
printf("Appuyez sur une touche pour declancher le compteur ...");
getch();
Sleep(5000);
hFore = GetForegroundWindow();
iNbChar = GetClassName(hFore,szBuffer,128);
if (iNbChar && (iNbChar < 128))
{
printf("\r\nLe class name de cette fenetre est :\r\n|%s|",szBuffer);
printf("\r\nLes barres verticales (|) de gauche et droite n'en font pas partie\r\n");
}
else
{
printf("Impossible de recuperer le class name ou celui-ci est trop long\r\n");
}
SetForegroundWindow(FindWindow("%s",NULL));
Sleep(100);
keybd_event('B',0,0,0);
keybd_event('B',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('O',0,0,0);
keybd_event('O',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('N',0,0,0);
keybd_event('N',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('J',0,0,0);
keybd_event('J',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('O',0,0,0);
keybd_event('O',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('U',0,0,0);
keybd_event('U',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('R',0,0,0);
keybd_event('R',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event(VK_SPACE,0,0,0);
keybd_event(VK_SPACE,0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('H',0,0,0);
keybd_event('H',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('A',0,0,0);
keybd_event('A',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('W',0,0,0);
keybd_event('W',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('A',0,0,0);
keybd_event('A',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('T',0,0,0);
keybd_event('T',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('A',0,0,0);
keybd_event('A',0,KEYEVENTF_KEYUP,0);
Sleep(500);
keybd_event('K',0,0,0);
keybd_event('K',0,KEYEVENTF_KEYUP,0);