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

MFC Discussion :

[MFC] Ctrl/Alt+touches avec PostMessage


Sujet :

MFC

  1. #1
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut [MFC] Ctrl/Alt+touches avec PostMessage
    Bonjour,

    je sais que y a plein de messages la dessus sur le forum deja, mais impossible de faire marcher les commandes complexes Alt/Ctrl

    Je recupere l'handle de la fenetre avec un FindWindow(NULL, titre) et ensuite j'essaye d'envoyer des messages a l'application.

    En fait, j'essaye de simuler le choix dans un menu.
    voici les messages que j'envoie avec PostMessage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (WM_KEYDOWN, VK_SPACE,0 )
    (WM_KEYUP, VK_SPACE,0 )

    La touche espace fonctionne, ca fait une action sur l'application, donc le handle est correct.


    par contre, WM_CHAR marche pas, ni :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // envoi de Ctrl-F
    (WM_KEYDOWN, VK_CONTROL,0 );
    (WM_KEYDOWN, 0x46,0 );
    (WM_KEYUP, 0x46,0 );
    (WM_KEYUP, VK_CONTROL,0 );
    ou 
    (WM_SYSKEYDOWN, VK_CONTROL,0 );
    (WM_SYSKEYDOWN, 0x46,0 );
    (WM_SYSKEYUP, 0x46,0 );
    (WM_SYSKEYUP, VK_CONTROL,0 );
    j'ai aussi essayé d'ouvrir un menu avec :
    (WM_SYSCOMMAND, SC_KEYMENU ,'f' )
    sans succes.

    Merci de m'aider ;o)

    Fladnag[/b][/code]

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    essaye comme ça pour voir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    PostMessage(hwnd,WM_CHAR,VK_CONTROL,1);
    PostMessage(hwnd,WM_CHAR,0x46,1);

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut nan ca marche pô ;o)
    j'ai essayé avec 0, 1 et 2, et ca ne marche pas (essayé avec WM_CHAR , KEYDOWN, SYSKEYDOWN, KEYUP, SYSKEYUP)

    les seules messages qui ont l'air d'etre gérés par l'application sont :

    WM_KEYDOWN
    WM_SYSKEYDOWN

    mais seulement lors de l'envoi de touche "simple" sans Alt ou Ctrl (comme espace)

    Fladnag

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    tu devrais utiliser spy pour tracker l'edit en question ne faire apparaitre que les messages en provenance du clavier .
    faire ta sequences de touches manuellement sur l'edit et voir dans quel ordre ça apparait dans spy et "pomper " ensuite la sequence d'envoie .

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut merci !!
    comme quoi j'ai eu tord de pas utiliser Spy++ ;o)

    ca marche !

    j'ai pu voir les commandes a envoyer pour ouvrir le menu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <00041> 00610418 P WM_KEYDOWN nVirtKey:VK_DOWN cRepeat:0 ScanCode:00 fExtended:0 fAltDown:0 fRepeat:0 fUp:0
    Mais surtout, j'ai trouvé le message envoyé par l'application pour réaliser l'action du menu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    <00081> 00610418 P WM_COMMAND wNotifyCode:0 (envoyé à partir d'un menu) wID:32781
    <00082> 00610418 S message:0x8065 [Défini par l'utilisateur :WM_USER+31845] wParam:00000001 lParam:00000000
    Du coup, plus besoin de simuler le clavier, j'envoie directement ce message... et ca a l'air de marcher ;o) (bien que ca soit un peu lent (environ 3 secondes))

    Merci !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Automatiser le séquence ctrl-alt-suppr avec VNC
    Par Tomate251 dans le forum Windows
    Réponses: 0
    Dernier message: 19/12/2007, 07h45
  2. Réponses: 3
    Dernier message: 08/03/2007, 08h51
  3. Gérer l'appui sur une touche avec Alt Gr
    Par Haywire dans le forum Delphi
    Réponses: 6
    Dernier message: 10/01/2007, 16h56
  4. [MFC]Simuler CTRL+HOME avec PostMessage
    Par corwin_d_ambre dans le forum MFC
    Réponses: 4
    Dernier message: 27/01/2006, 11h48
  5. passer une combinaison de trois touche ctrl+alt+w à mon micr
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 09/11/2005, 19h43

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