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

VBA Access Discussion :

Simuler les touches Windows flèche droite [AC-2019]


Sujet :

VBA Access

  1. #1
    Membre éclairé Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Par défaut Simuler les touches Windows flèche droite
    Bonjour,
    Sur le forum j'ai trouvé cette excellente discussion :https://www.developpez.net/forums/d3...ouche-windows/
    Avec un code qui fonctionne pour Windows+M
    Je souhaite le même code pour Windows+Flèche droite.
    Je ne sais pas trouver la constante qui remplacerait le M
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub SendWindows_M()
            Const KEYEVENTF_KEYUP As Long = &H2
            Const VK_RWIN As Long = &H5C
            Const VK_LWIN As Long = &H5B
            keybd_event VK_LWIN, 0&, 0&, 0&                                        ' Enfoncer touche Win Gauche
            keybd_event Asc("M"), 0&, 0&, 0&                                       ' Enfoncer la touche M
            keybd_event Asc("M"), 0&, KEYEVENTF_KEYUP, 0&                          ' Relever touche M
            keybd_event VK_LWIN, 0&, KEYEVENTF_KEYUP, 0&                           ' Relever touche Win Gauche
    End Sub

  2. #2
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 955
    Par défaut
    bonjour,
    en cherchant un peu, je suis tombé sur ça : https://doc.pcsoft.fr/fr-FR/?6510001...indows_32_bits
    le tout étant de trouver à quelle constante correspondait la flèche droite, il semble que ce soit VK_RIGHT, par déduction le reste suit:
    son code décimal est (39) donc avec la fonction Hex(39) on a 27
    et en adaptant le code donné:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub SendWindows_KR()
            Const KEYEVENTF_KEYUP As Long = &H2
            Const VK_RWIN As Long = &H5C
            Const VK_LWIN As Long = &H5B
            Const VK_RIGHT As Long = &H27                                          ' Déclarer flèche droite
     
            keybd_event VK_LWIN, 0&, 0&, 0&                                        ' Enfoncer touche Win Gauche
            keybd_event VK_RIGHT, 0&, 0&, 0&                                       ' Enfoncer flèche Droite
            keybd_event VK_RIGHT, 0&, KEYEVENTF_KEYUP, 0&                          ' Relever flèche Droite
            keybd_event VK_LWIN, 0&, KEYEVENTF_KEYUP, 0&                           ' Relever touche Win Gauche
    End Sub
    résultat: la fenêtre où le code est appelé se positionne à droite et les autres, à gauche en vignettes

    autre chose, ton code n'est pas complet si tu ne postes pas l'API qui va avec (pour ceux qui essaieraient ton code sans lire le lien ...):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Option Explicit
    #If VBA7 Then
      Declare PtrSafe Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As LongPtr, ByVal dwExtraInfo As LongPtr)
    #Else
      Declare Sub keybd_event Lib "User32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    #End If
    PS: pour info, la fonction keybd_event a été remplacée par SendInput
    tu pourrais éventuellement solliciter le bon forum (je ne sais pas trop lequel ...) pour avoir le nouveau code

  3. #3
    Membre éclairé Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Par défaut
    Merci tee_grandbois, c'est parfait.
    Quand je vois ton code, je me dis que c'est simple, quand je cherche c'est toujours compliqué !
    en cherchant un peu, je suis tombé sur ça : https://doc.pcsoft.fr/fr-FR/?6510001...indows_32_bits
    le tout étant de trouver à quelle constante correspondait la flèche droite, il semble que ce soit VK_RIGHT, par déduction le reste suit:
    son code décimal est (39) donc avec la fonction Hex(39) on a 27
    https://www.to-convert.com/fr/nombre...en-decimal.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PS: pour info, la fonction <a href="https://learn.microsoft.com/fr-fr/windows/win32/api/winuser/nf-winuser-keybd_event" target="_blank">keybd_event</a> a été remplacée par <a href="https://learn.microsoft.com/fr-fr/windows/win32/api/winuser/nf-winuser-sendinput" target="_blank">SendInput</a>
    tu pourrais éventuellement solliciter le bon forum (je ne sais pas trop lequel ...) pour avoir le nouveau code
    Comment as-tu trouvé que "keybd_event", n'était plus d'actualité ?

    Je regarderai plus tard "keybd_event", mais pour le moment le code fonctionne parfaitement.

  4. #4
    Expert éminent
    Avatar de tee_grandbois
    Homme Profil pro
    retraité
    Inscrit en
    Novembre 2004
    Messages
    8 955
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Novembre 2004
    Messages : 8 955
    Par défaut
    Comment as-tu trouvé que "keybd_event", n'était plus d'actualité ?
    en lisant l'aide Microsoft de la fonction

  5. #5
    Membre éclairé Avatar de Superpat9999
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2003
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 438
    Par défaut
    Citation Envoyé par tee_grandbois Voir le message
    J'avais lu, mais je n'avais pas su m'en servir

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

Discussions similaires

  1. [SendKeys] Simuler la touche Windows
    Par Commodore dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 02/06/2022, 03h51
  2. Simuler les touches du clavier sur des jeux
    Par GrMfHs dans le forum Delphi
    Réponses: 5
    Dernier message: 03/04/2017, 17h16
  3. Réponses: 1
    Dernier message: 26/09/2016, 17h57
  4. inhiber les touches windows
    Par olosimam dans le forum C#
    Réponses: 8
    Dernier message: 24/11/2009, 16h13
  5. les touches windows
    Par anisj1m dans le forum Interfaces Graphiques en Java
    Réponses: 6
    Dernier message: 29/08/2006, 06h52

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