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

Delphi Discussion :

Onkeydown / keyup sur application externe ?


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut Onkeydown / keyup sur application externe ?
    Bonjour ! étant débutant en delphi j'aurai aimé un coup de patte.
    Voilà je désirerai pouvoir assigner du code à une procédure qui sera déstinée à envoyer des séquences de touche à une application cible.

    Ce que je veux dire c'est que je voudrai utiliser les évenements keydown et keyup pour recreer une sorte de getasynckeystate.

    du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Procedure keydown blabla
    begin
    If touche appuyée Then
    Action à faire;
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Procedure Keyup blabla
    begin
    If touche relachée Then
    Action à faire;
    end;
    Le probleme est que je ne vois pas comment déclarer ces procédures car ils ne doivent pas agir sur un composant de la form et donc les procédures écrites comme sa :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure composant.KeyDown(var Key: Word; Shift: TShiftState);
      begin
        if machin then truc;
      end;
    ne vont pas.
    Comment dois-je m'y prendre ?

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    C'est pas bien clair. Tu peux préciser le but de ton application ?

  3. #3
    Membre émérite
    Avatar de CapJack
    Homme Profil pro
    Prof, développeur amateur vaguement éclairé...
    Inscrit en
    Mars 2004
    Messages
    624
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Prof, développeur amateur vaguement éclairé...
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 624
    Par défaut
    API de Windows.

    Cherche comment retrouver le handle de la fenêtre de l'application cible (je suppose qu'il y a de la doc sur developpez), et comment envoyer des commandes touches à une fenêtre par le biais de SendMessage (idem).

  4. #4
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Cherche comment retrouver le handle de la fenêtre de l'application cible (je suppose qu'il y a de la doc sur developpez)
    Exactement cette doc existe !
    , et comment envoyer des commandes touches à une fenêtre par le biais de SendMessage (idem).
    et oui, n'hésites pas à chercher (allez je t'aide c'est dans la FAQ delphi et tu as le droit d'utiliser le moteur de recherche !)

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    189
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 189
    Par défaut
    Erf, apparement je suis trés loin dêtre clair ^^.

    Je sais envoyer des simulations de préssion de touches à une application cible (sendinput, keybd_event...)

    Le souci ne se trouve pas la, mais il se trouve dans le fait que je veux pouvoir envoyer ma séquence de touche en faisant une préssion sur une touche qui sera ici AltGr (CTRL+ALT).
    L'application cible est une application directx (directdraw éxactement).

    et si j'utilise getasynckeystate puis sendinput ou keybd_event, sa marche trés trés bien dans windows, dans les menus de mon applications cible aussi mais pas en partie.
    J'aurai donc tendance à dire que getasynckeystate joue mal son role en jeu.
    Mon but est d'envoyer par préssion de AltGr, 2 préssion de barres d'éspace.

    Et donc je demandais si une procedure keydown, keyup pourai m'aider, si oui, comment mettre sa en place.

    J'ai aussi entendu parler de keyhook pour faire sa, j'aimerai en savoir plus car je ne trouve pas de sujets traité la dessus avec éfficacité, et qui ne soit pas en chinoix .
    Une idée ?

  6. #6
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Tu veux intercepter les touches clavier ??
    http://delphi.developpez.com/sources...no40source0007

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/04/2014, 14h58
  2. Réponses: 0
    Dernier message: 15/06/2012, 11h09
  3. Réponses: 2
    Dernier message: 27/07/2011, 11h40
  4. Réponses: 3
    Dernier message: 15/03/2009, 04h50
  5. courant sur port extern
    Par bobymaw dans le forum C++Builder
    Réponses: 16
    Dernier message: 06/05/2004, 13h16

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