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

Assembleur Discussion :

Simuler un appui de touche clavier


Sujet :

Assembleur

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Simuler un appui de touche clavier
    Bonjour,
    Je me demande si il est possible de simuler une interruption matérielle et
    plus particulièrement un appui de touche clavier, peut être en envoyant
    un code touche dans le buffer clavier ou en détournant l'interruption...
    Si vous avez une idée et peut être une fonction à utiliser ça m'aiderait beaucoup ....

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Int 16h, Fct 05h Clavier : Simuler l'appui sur une touche BIOS (> AT)

    Cette fonction permet à un programme de simuler l'appui sur une touche en ajoutant un code de touche particulier à la fin actuelle du buffer de clavier.

    Entrée :

    AH = 05h
    CH = Scan code de la touche
    CL = Code ASCII de la touche

    Sortie :

    AL = 00h:ok
    AL = 01h : buffer de clavier saturé


    Remarques :

    • Attention ! Tous les BIOS ne reconnaissent pas cette fonction.
    • Le contenu des registres BX, CX, DX, SI, DI, BP et des registres de segment n'est pas modifié par cette fonction. Le contenu de tous les autres registres peut avoir été modifié.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Je vais essayer de suite,
    merci beaucoup

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    J'ai essayé avec une attente de touche après la simulation -> ça marche.
    Ce que je souhaiterai faire c'est envoyer une touche pour une autre application en cours. Ce que j'ai commencé à faire c'est une dll en assembleur qui prend en paramètre la combinaison code Ascii + code touche et qui met cette touche dans le buffer clavier.
    Juste avant l'appel à la Dll j'active la fenêtre de l'application pour laquelle la touche est destinée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Envoi      proc export p1:WORD
     
                mov cx,p1
                mov ah,05h
                int 16h
                ret
     
    Envoi       endp
    Est ce que dans le fond c'est possible ?
    Lors de l'appel à la DLL mon appli ( fait en Windev8 ) plante
    Si vous avez des commentaires ...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    En fait ce que je cherche à faire c'est envoyer un Control+C à une appli application dos. J'ai déjà testé l'envoietouche avec windev, le sendMessage et le keybd_event.
    Sur une console Dos simple l'envoi marche mais sur un programme dos qui gère les touches ... non c'est une application de communication un peu comme un telnet sous dos.

    ça vous dis quelque chose ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    842
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 842
    Points : 696
    Points
    696
    Par défaut
    Une dll win 32 qui utilise les fonction DOS, y'avait aucune chance que ca marche. ^^


    Citation Envoyé par Win32 SDK
    The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.
    C'est pas mal, sauf qu'il faut que la fenêtre de ton appli DOS soit active ! Et dans ton cas, si l'appli DOS ne réagit pas à Control+C, c'est que le programmeur n'a pas voulu qu'elle y réagisse ! Tous les programmes DOS n'y réagissent pas : seuls les programmes qui appellent les fonctions qui vérifient la combinaison (ce sont des fonctions de l'int 21h) et qui l'interpretent comme un arrêt doivent réagir ! En effet, les fonctions de l'int 21h peuvent même lire le Control+C mais ne pas l'interpreter !

    Si tu veux fermet une application, il y a d'autres méthodes. Si tu veux que ton programme fonctionne quelque soit l'application active, tu peux utiliser SendMessage en désignant la fenêtre cible après éventuelle identification.


    Blustuff.

Discussions similaires

  1. [XL-2007] Simulation d'appuie sur touche
    Par Jason T dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/05/2009, 15h29
  2. [X11] Simuler des appuis de touches
    Par Petithomme dans le forum Linux
    Réponses: 4
    Dernier message: 22/11/2008, 14h07
  3. Réponses: 22
    Dernier message: 24/10/2006, 18h04
  4. simuler l'appui de touches
    Par polo42 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 10/07/2006, 12h47
  5. Simuler l'appui de touches
    Par immerczeck dans le forum Assembleur
    Réponses: 5
    Dernier message: 21/04/2004, 18h23

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