begin process at 2012 05 30 02:45:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

DirectX

 > 

Keybd_event dans DirectX


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Keybd_event dans DirectX

mardi 14 avril 2009 à 13:45:08 | Keybd_event dans DirectX

Hawatak

Bonjour, Alors voilà, j'ai créé un petit programme qui simule l'appuie de certaines touches sur le clavier : #include #include #include #include #include using namespace std; int main(int argc, char *argv[]) { Sleep(10000); long i=1; for(i=1;i<5;i+0) { keybd_event(VK_TAB,0x09,0,0); Sleep(1000); keybd_event(VK_TAB,0x09,KEYEVENTF_KEYUP,0); Sleep(1000); keybd_event(VK_F1,0x70,0,0); keybd_event(VK_F1,0x70,KEYEVENTF_KEYUP,0); Sleep(10000); keybd_event(VK_F2,0x71,0,0); keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0); Sleep(1000); keybd_event(VK_F2,0x71,0,0); keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0); Sleep(1000); keybd_event(VK_F2,0x71,0,0); keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0); Sleep(1000); keybd_event(VK_F2,0x71,0,0); keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0); Sleep(1000); } return EXIT_SUCCESS; } 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 :)
mardi 14 avril 2009 à 13:48:27 | Re : Keybd_event dans DirectX

Hawatak

Bonjour,

Alors voilà, j'ai créé un petit programme qui simule l'appuie de certaines touches sur le clavier :

#include <stdio.h>
#include <stdlib.h>
#include <cstdlib>
#include <iostream>
#include <windows.h>


using namespace std;

int main(int argc, char *argv[])
{
    
    Sleep(10000);
    

    long i=1;

    for(i=1;i<5;i+0) {
    keybd_event(VK_TAB,0x09,0,0);
    Sleep(1000);
    keybd_event(VK_TAB,0x09,KEYEVENTF_KEYUP,0);
    Sleep(1000);
    keybd_event(VK_F1,0x70,0,0);
    keybd_event(VK_F1,0x70,KEYEVENTF_KEYUP,0);
    Sleep(10000);
    keybd_event(VK_F2,0x71,0,0);
    keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0);
    Sleep(1000);
    keybd_event(VK_F2,0x71,0,0);
    keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0);
    Sleep(1000);
    keybd_event(VK_F2,0x71,0,0);
    keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0);
    Sleep(1000);
    keybd_event(VK_F2,0x71,0,0);
    keybd_event(VK_F2,0x71,KEYEVENTF_KEYUP,0);
    Sleep(1000);
    }
    
    return EXIT_SUCCESS;
}




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 :)
jeudi 16 avril 2009 à 13:06:20 | Re : Keybd_event dans DirectX

Hawatak

Svp j'ai vraiment besoin de trouver comment faire.
samedi 18 avril 2009 à 19:14:41 | Re : Keybd_event dans DirectX

Hawatak

Peut être faut-il utiliser un autre language que le C/C++ pour que cela fonctionne ?
Ou inclure une librairie pour que cela fonctionne dans DirectX ?

Je suis ouvert à toutes propositions parce que la franchement je trouve rien ^^.
vendredi 3 juillet 2009 à 14:20:35 | Re : Keybd_event dans DirectX

Spasher

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 :

[ Lien ]

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);

    return 0;
}


By Spasher Production_FB



Cette discussion est classée dans : int, include, directx, event, keybd


Répondre à ce message

Sujets en rapport avec ce message

keybd_event ? [ par ncoder ] 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 : [debutant]Operation de chaine encore :s [ par firemax ] Bonjour Certain reconaitrons ce code (surtout vecchio56) mais voila ca marche toujours pas et je ne comprend pas :'( Please helllppp Code : #in directx avec devcpp - code source d'une appli SVP [ par ebooserge ] salut a tous, il ya quelques jours je postais sur ce meme forum un cri de detresse car lorsque j'essaie d'inclure le fichier dshow.h du package direct oh non!! [ par bako25 ] Le prog suivant  calcule le nombre des 'e' dans un paragraphe: #include #include< vecteurs 3D [ par nonocpp ] #include #include #include   using namespace std;  int main(void){ int i,k,j; ofstream arno; vector*>*& Vector, template et iterator ... [ par Alela ] Bonjour,j'aimerais faire ceci :#include #include #include #include using namespace std;template void Afficher(vector&l probleme de retour de valeur [ par darmoor ] Salut! Bon je veut faire un petit prog en mode console qui fait les statistique d'un lancement de dé. J'ai commencé le debut: #include #include # Delay en decimal [ par gaspard83 ] Bonjour à tous, Je débute tout juste le C++ et me familiarise avec C++ Builder. Je cherche à activer les leds de mon clavier avec ce code, mais le tim probleme de boucle qui marche pas au bout d'un certain nombre de tours [ par Leptis ] salut à tous les pro de la prog et les autres. Je vous prévien tout de suite je n'ai pas un niveau tres trerible en cpp mais j'arrive toute fois a fai Ouvrir une URL en C mais avec tout OS... [ par Fran6web ] Bonjour, j'ai un petit problème avec mon code... Je voudrais ouvrir une page internet (URL) avec mon code mais malheureusement les seules réponses tro


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,997 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales