IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Interpréteur de commande


Sujet :

C

  1. #1
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut Interpréteur de commande
    Bonjour,

    Je souhaiterais créer un interpréteur de commande. Je m'explique, je voudrais qu'en fonction de se que je tape, l'interpréteur exécute ma commande comme pour le alt+F4, alt+ctfl+suppr. Sauf que la moi pour reconnaitre ce que je tape par exemple pour exécuter msn je tapperais *msn.
    Mais je ne sais pas par où commencer. Alors si vous avez des idées pour m'aider merci d'avance.

  2. #2
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Avec des Hooks ? cf ceci : http://tcharles.developpez.com/simul/

  3. #3
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Merci,

    J'essaye d'appliquer ses exemples. Par exemple j'ai mon MMO de lancé. J'essaye avec cette exemple l'appui de la touche I dans mon MMO ce qui devrait m'ouvrir l'inventaire. Mais rien ne se passe.

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char * argv[])
    {
         FILE *handle=fopen("handle.txt","w");
         _sleep(5000); //le temps de cliquer sur la fenêtre de mon MMO pour récupérer le bon handle
         HWND hSro = GetForegroundWindow();
         fprintf(handle,"le handle de la fenêtre de SRO est : 0x%X",hSro);
         SetForegroundWindow(hSro);
         PostMessage(hSro,WM_KEYDOWN,'i',0); //Simule l'appuie de la touche I dans la fenêtre du MMO.
     
    }
    Je dois mal faire quelque chose. J'ai pourtant essayé de reproduire ce qui est fait dans le tutoriel mais voilà ça ne marche comme prévu.
    Sinon je voulais savoir comment il faillait faire pour trouver le class name d'une application. C'est vaguement expliqué dans le tutoriel. Étant donné que le handle du MMO change à chaque nouvelle exécution, ce serait sympa de trouver son class name.

    Cordialement

  4. #4
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Hmm ... et avec autre chose que SRO ça marche ? (genre notepad), parce qu'il me semble que les MMORPG sont protégés contre les bots ...

  5. #5
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Oui exact, je me suis bloqué a dessus, j'essaye sur notepad !

    Ca ne marche pas non plus.

  6. #6
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par darkwall_37 Voir le message
    Sauf que la moi pour reconnaitre ce que je tape par exemple pour exécuter msn je tapperais *msn.
    Je signale, à toutes fins utiles, que Windows fourni un cmd.exe qui fait ça en mode console...

    Mais si tu y tiens :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    repeter
     saisir une ligne de commande
     separer la commande et les parametres
     selon la commande, 
      appeler la fonction correspondante avec ses paramètres
    tant que la commande n'est pas 'exit'
    C'est assez simple.

  7. #7
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Ok,

    Sauf que si j'ai a peu près compris ce tutoriel, pour récupérer ce que je tape il faut que ça se fasse dans n'importe quelle fenêtre. Or pour ça il faut récupérer le handle de chaque fenêtre à tout instant ou via le class name de l'application que je ne sais pas trouver. Et je n'arrive même pas à simuler un malheureux appuis de la touche 'i' dans notepad ! Je me trouve affligeant ! Alors je ne vais pas commencer directement comme ça si je n'arrive même pas à faire la base.
    Je ne sais pas si cela peut être à cause des VK_KEYS que dev c++ ne compile pas, je mets 'lettre' à la place de VK_LETTRE.

    Cordialement

    Avec le lancement d'une musique la pause & dé-pause fonctionne. Je suppose donc que le 'i' ne passe pas.

  8. #8
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Ah au fait, pour mettre 'i' dans notepad :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    #include <windows.h>
    #include <stdio.h>
    #include <stdlib.h>
     
    int _tmain(int argc, _TCHAR* argv[])
    {
    	_sleep(5000); //le temps de cliquer sur la fenêtre de mon MMO pour récupérer le bon handle
    	printf("Start\n");
    	HWND hSro = GetForegroundWindow();
    	printf("le handle de la fenêtre est : 0x%X\n",hSro);
     
    	TCHAR title[255];
    	GetWindowText(hSro,&*title,255);
     
    	HWND hFoc = GetFocus();
    	printf("La fenêtre avec le focus est : 0x%X",hSro);
     
    	keybd_event(VkKeyScan('i'),0,0,0);
    	keybd_event(VkKeyScan('i'),0,KEYEVENTF_KEYUP,0);
     
    	MessageBox(NULL,title,NULL,0);
    }
    Toutes les broutilles qu'il y a autour m'ont juste servit à vérifier sur quoi je tapais

  9. #9
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    Bonjour,

    Quand je demande à ce que soit tapé par exemple mon adresse mail, le @ est retranscrit en à et et le . en ; pour ne citer que ceux là. Comment palier à ce problème ?

    Merci d'avance.

  10. #10
    Expert confirmé
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Par défaut
    Faudrait peut être essayer d'enfoncer la touche Alt-Gr avant d'enfoncer celle du à pour faire le @ ...

  11. #11
    Membre éclairé
    Homme Profil pro
    amateur
    Inscrit en
    Octobre 2007
    Messages
    731
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : amateur

    Informations forums :
    Inscription : Octobre 2007
    Messages : 731
    Par défaut
    LOL, je me suis mal exprimé... Quand je tape le @ dans l'invite de commande, sur notepad je récupère un à.

    Merci

Discussions similaires

  1. Questions interpréteur de commandes C.
    Par tifil dans le forum C
    Réponses: 5
    Dernier message: 30/10/2014, 23h44
  2. Interpréteur de commande sous VS2010
    Par digofwall dans le forum Visual Studio
    Réponses: 0
    Dernier message: 01/11/2012, 07h09
  3. Interpréteur de commandes
    Par cilyan dans le forum C
    Réponses: 6
    Dernier message: 11/05/2007, 09h01
  4. Réponses: 4
    Dernier message: 15/02/2006, 04h56
  5. parametres de l'interpréteur de commande windows (cmd.exe)
    Par LE CORRE dans le forum Windows XP
    Réponses: 2
    Dernier message: 21/01/2006, 15h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo