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

API, COM et SDKs Delphi Discussion :

Contrôle du clavier


Sujet :

API, COM et SDKs Delphi

  1. #21
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par edam
    ????
    attent tu veux pas utilisé keybd_event,oui ou non??
    comment tu fait toi?
    Je l'utilise, mais ça ne marche pas !

    Voici mon test avec NotePad :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    procedure TForm1.Button1Click(Sender: TObject);
      var hPad : HWND;
    begin
      hPad := FindWindow('Notepad', nil);
      SetForegroundWindow(hPad);
      sleep(500);
      keybd_event(41, 0, 0, 0);
      keybd_event(41, 0, KEYEVENTF_KEYUP, 0);
    end;
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  2. #22
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    comment
    si avec keybd_even il doit surement etre utlisé avec une application en arriére plant pour que sa marche sur celle qui détien le focus
    essaye de l'utilisé sur lamem application dans un clik de (forum,boutton,..)
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  3. #23
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par edam
    comment
    si avec keybd_even il doit surement etre utlisé avec une application en arriére plant pour que sa marche sur celle qui détien le focus
    essaye de l'utilisé sur lamem application dans un clik de (forum,boutton,..)
    Ben oui, NotePad passe au premier plan là.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  4. #24
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    quent envoit tu votre keybev avant ou aprés le notpad.show( )
    ok, essye d'utlisé les touche system, menu, exlorateur et voir
    ou meme (alt+f4)
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  5. #25
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par edam
    quent envoit tu votre keybev avant ou aprés le notpad.show( )
    ok, essye d'utlisé les touche system, menu, exlorateur et voir
    ou meme (alt+f4)
    Les touches sépciales, ça marche. Si je fait Alt, par exemple, le menu s'affiche, mais ça marche pas pour les touches.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  6. #26
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par MD Software
    Citation Envoyé par edam
    voir:
    http://docvb.free.fr/apidetail.php?idapi=79
    et
    http://docvb.free.fr/apidetail.php?idapi=78
    bon dev
    Merci edam, mais je n'ai pas de problème pour trouver la fenêtre. La recherche de la fenêtre fonctionne bien, le problème, c'est que les messages du claviers n'arrivent pas au contrôle actif.
    voir le 2éme lien il vous donne le handle des composant contenut dans l'application (je pense que seulement les composant fenétré) avec sa tu peut envoyé des message direct mem si la fenétre non activé
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  7. #27
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    tu peut donnée votre bou de code,,,merci
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  8. #28
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    :trouve:
    C'est bon, c'est plus la peine de chercher.
    En fait, il faut passer le code ASCII à keybd_event

    C'est bon, ça marche, j'arrive à écrire dans Word !

    Merci à tous
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  9. #29
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  10. #30
    Membre émérite
    Avatar de Thierry Laborde
    Homme Profil pro
    N/A
    Inscrit en
    Avril 2002
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : N/A

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 391
    Points : 2 529
    Points
    2 529
    Par défaut
    Désolé j'arrive un peu en retard. Mais il n'y a pas longtemps il y a eu un article sur une DLL AutoItDll qui permet de commander un autre programme. Donc ça peut peut être t'intéresser.

    http://christopher-pecaud.developpez.com/AutoItDll/

    C'était juste pour amener une info en plus.

    Bon dev.

  11. #31
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Je recommence, ZUT !

    Voilà mon pb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      keybd_event(Ord('B'), 0, 0, 0);
      keybd_event(Ord('B'), 0, KEYEVENTF_KEYUP, 0);
      Sleep(500);
      keybd_event(Ord('o'), 0, 0, 0);
      keybd_event(Ord('o'), 0, KEYEVENTF_KEYUP, 0);
      Sleep(500);
      keybd_event(Ord('n'), 0, 0, 0);
      keybd_event(Ord('n'), 0, KEYEVENTF_KEYUP, 0);
    Ce code affiche : "b/." que je mette le keyup ou pas.
    Pourquoi ça ne marche que sur la première lettre, vous avez une idée ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  12. #32
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par edam
    Citation Envoyé par MD Software
    Citation Envoyé par edam
    voir:
    http://docvb.free.fr/apidetail.php?idapi=79
    et
    http://docvb.free.fr/apidetail.php?idapi=78
    bon dev
    Merci edam, mais je n'ai pas de problème pour trouver la fenêtre. La recherche de la fenêtre fonctionne bien, le problème, c'est que les messages du claviers n'arrivent pas au contrôle actif.
    voir le 2éme lien il vous donne le handle des composant contenut dans l'application (je pense que seulement les composant fenétré) avec sa tu peut envoyé des message direct mem si la fenétre non activé
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  13. #33
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Oui, mais en fait, ce code ne donne pas le composant, mais des fenêtres MDI.
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  14. #34
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    si,
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  15. #35
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par MD Software
    Je recommence, ZUT !

    Voilà mon pb :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      keybd_event(Ord('B'), 0, 0, 0);
      keybd_event(Ord('B'), 0, KEYEVENTF_KEYUP, 0);
      Sleep(500);
      keybd_event(Ord('o'), 0, 0, 0);
      keybd_event(Ord('o'), 0, KEYEVENTF_KEYUP, 0);
      Sleep(500);
      keybd_event(Ord('n'), 0, 0, 0);
      keybd_event(Ord('n'), 0, KEYEVENTF_KEYUP, 0);
    Ce code affiche : "b/." que je mette le keyup ou pas.
    Pourquoi ça ne marche que sur la première lettre, vous avez une idée ?
    ça va m'aider pour ça ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  16. #36
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    non, c'est totalemnt différent c'est comme si tu va crée une prtie de ctte DLL:http://christopher-pecaud.developpez.com/AutoItDll/
    avec le handle de fenétre (composant) tu lui envoit directement un message de wmkeydown ou meme avec SetWindowText
    http://docvb.free.fr/apidetail.php?idapi=26
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  17. #37
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Bon ça va allez, zou !

    C'est terminé, j'ai trouvé mon problème !

    Il faut le code ascii de la lettre en MAJUSCULE !
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  18. #38
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  19. #39
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par MD Software
    Bon ça va allez, zou !

    C'est terminé, j'ai trouvé mon problème !

    Il faut le code ascii de la lettre en MAJUSCULE !
    Pour Info dans l'aide Delphi, il y a ça d'écit :

    Pour les touches alphabétiques,vous devez utiliser ord avec un caractère majuscule,par exemple,ord('M').
    Au milieu de tout ça (Rubrique Codes touche virtuelle qui peut servir :
    Les codes touche virtuelle fournissent une représentation symbolique des appuis utilisateur sur les touches.

    Unité

    Windows

    Description

    Les codes touche virtuelle vous permettent de représenter les valeurs clavier pour les touches non-alphanumériques.Windows définit des constantes spéciales pour chaque touche pouvant être enfoncée par l'utilisateur.Ces constantes peuvent alors être utilisées pour faire référence àla frappe de touche dans des appels API Windows ou dans un gestionnaire d'événement OnKeyUp ou OnKeyDown.

    La plupart des codes touche virtuelle sont définies dans l'unitéWindows.Des codes touche supplémentaires peuvent être définis dans des enveloppes Windows àbut spécifique comme l'unitéimm.Pour les touches alphabétiques,vous devez utiliser ord avec un caractère majuscule,par exemple,ord('M').

    Utilisez la méthode Ord afin de créer un code touche virtuelle pour une valeur alphanumérique.Par exemple,le code touche virtuelle de '7'est Ord('7').

    Le tableau suivant énumère les codes touche virtuelle définis dans l'unitéWindows :

    Code touche virtuelle Touche correspondante

    VK_LBUTTON Bouton gauche de la souris
    VK_RBUTTON Bouton droit de la souris
    VK_CANCEL Ctrl+Pause
    VK_MBUTTON Bouton central de la souris
    VK_BACK Touche Retour arrière
    VK_TAB Touche Tabulation
    VK_CLEAR Touche Effacer
    VK_RETURN Touche Entrée
    VK_SHIFT Touche Maj
    VK_CONTROL Touche Ctrl
    VK_MENU Touche Alt
    VK_PAUSE Touche Pause
    VK_CAPITAL Touche Verrouillage majuscule
    VK_KANA Utilisée avec l'IME
    VK_HANGUL Utilisée avec l'IME
    VK_JUNJA Utilisée avec l'IME

    VK_FINAL Utilisée avec l'IME
    VK_HANJA Utilisée avec l'IME
    VK_KANJI Utilisée avec l'IME
    VK_CONVERT Utilisée avec l'IME
    VK_NONCONVERT Utilisée avec l'IME
    VK_ACCEPT Utilisée avec l'IME
    VK_MODECHANGE Utilisée avec l'IME
    VK_ESCAPE Touche Echap
    VK_SPACE Barre d'espace
    VK_PRIOR Touche Page précédente
    VK_NEXT Touche Page suivante
    VK_END Touche Fin
    VK_HOME Touche Début
    VK_LEFT Touche flèche vers la gauche
    VK_UP Touche flèche vers le haut
    VK_RIGHT Touche flèche vers la droite

    VK_DOWN Touche flèche vers le bas
    VK_SELECT Touche de sélection
    VK_PRINT Touche Impression (spécifique au clavier)
    VK_EXECUTE Touche d'exécution
    VK_SNAPSHOT Touche Impression écran
    VK_INSERT Touche Insertion
    VK_DELETE Touche Suppression
    VK_HELP Touche d'aide
    VK_LWIN Touche gauche Windows (clavier Microsoft)
    VK_RWIN Touche droite Windows (clavier Microsoft)
    VK_APPS Touche Applications (clavier Microsoft)
    VK_NUMPAD0 Touche 0 (pavénumérique)
    VK_NUMPAD1 Touche 1 (pavénumérique)

    VK_NUMPAD2 Touche 2 (pavénumérique)
    VK_NUMPAD3 Touche 3 (pavénumérique)
    VK_NUMPAD4 Touche 4 (pavénumérique)
    VK_NUMPAD5 Touche 5 (pavénumérique)
    VK_NUMPAD6 Touche 6 (pavénumérique)
    VK_NUMPAD7 Touche 7 (pavénumérique)
    VK_NUMPAD8 Touche 8 (pavénumérique)
    VK_NUMPAD9 Touche 9 (pavénumérique)
    VK_MULTIPLY Touche Multiplication (pavénumérique)
    VK_ADD Touche Plus (pavénumérique)
    VK_SEPARATOR Touche Séparateur (pavénumérique)
    VK_SUBTRACT Touche Moins (pavénumérique)

    VK_DECIMAL Touche décimale (pavénumérique)
    VK_DIVIDE Touche Division (pavénumérique)
    VK_F1 Touche F1
    VK_F2 Touche F2
    VK_F3 Touche F3
    VK_F4 Touche F4
    VK_F5 Touche F5
    VK_F6 Touche F6
    VK_F7 Touche F7
    VK_F8 Touche F8
    VK_F9 Touche F9
    VK_F10 Touche F10
    VK_F11 Touche F11
    VK_F12 Touche F12
    VK_F13 Touche F13
    VK_F14 Touche F14
    VK_F15 Touche F15
    VK_F16 Touche F16
    VK_F17 Touche F17
    VK_F18 Touche F18
    VK_F19 Touche F19
    VK_F20 Touche F20
    VK_F21 Touche F21

    VK_F22 Touche F22
    VK_F23 Touche F23
    VK_F24 Touche F24
    VK_NUMLOCK Touche Verr Num
    VK_SCROLL Touche Arrêt défilement
    VK_LSHIFT Touche Maj gauche (utilisée uniquement avec GetAsyncKeyState et GetKeyState)
    VK_RSHIFT Touche Maj droite (utilisée uniquement avec GetAsyncKeyState et GetKeyState)
    VK_LCONTROL Touche Ctrl gauche (utilisée uniquement avec GetAsyncKeyState et GetKeyState)
    VK_RCONTROL Touche Ctrl droite (utilisée uniquement avec GetAsyncKeyState et GetKeyState)

    VK_LMENU Touche Alt gauche (utilisée uniquement avec GetAsyncKeyState et GetKeyState)
    VK_RMENU Touche Alt droite (utilisée uniquement avec GetAsyncKeyState et GetKeyState)
    VK_PROCESSKEY Touche de processus
    VK_ATTN Touche Attn
    VK_CRSEL Touche CrSel
    VK_EXSEL Touche ExSel
    VK_EREOF Touche Erase EOF
    VK_PLAY Touche Lecture
    VK_ZOOM Touche Zoom
    VK_NONAME Réservée àun usage futur
    VK_PA1 Touche PA1
    VK_OEM_CLEAR Touche Effacer
    Bidouilleuse Delphi

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. contrôle touche clavier pour affichage des images
    Par ghyosmik dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 17/03/2011, 15h47
  2. Contrôle evenements clavier ds Datagridview
    Par twitty20 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/06/2008, 16h37
  3. Contrôle saisie clavier TEdit | Petite question bête..
    Par madnux dans le forum C++Builder
    Réponses: 11
    Dernier message: 03/02/2007, 15h46
  4. Réponses: 1
    Dernier message: 05/11/2005, 23h48

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