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

VBScript Discussion :

Lire une saisie clavier


Sujet :

VBScript

  1. #1
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut Lire une saisie clavier
    Bonjour,


    J'ai du mal à trouver comment effectuer une action si l'utilisateur appuies sur des touches du clavier.

    En gros, je voudrais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Si pression sur Ctrl Verr.Num Alors
         Action
    FinSi
    Je trouve des codes pour simuler des touches mais pas pour les récupérer.

    Des idées ?
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  2. #2
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 294
    Points : 3 544
    Points
    3 544
    Par défaut
    bonjour,
    la lecture du clavier peut être faite à partir de l'api : http://www.developpez.net/forums/d84...namicwrapperx/
    sinon sans doute plus simple avec un activex hotkey qui devrait fonctionner avec vbs (pas testé) :
    http://www.nsbasic.com/s309/HotKey/index.html
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  3. #3
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut
    Bonjour,

    Merci.

    Je regarde ton code sur le keylogger pour voir comment tu interceptes des pressions clavier.

    Je désespérais d'une réponse si bien que j'ai trouvé d'autres solutions mais celle-ci me plaît.

    EDIT : A quoi correspondent les &H14 &H10 etc ...?
    EDIT2 : J'ai compris. Petit souci, cette ligne ne fonctionne pas oWrap.GetAsyncKeyState
    Cette objet ne gère pas cette propriété ou cette méthode.
    Jai pourtant installé la dll.
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 294
    Points : 3 544
    Points
    3 544
    Par défaut
    EDIT2 : J'ai compris. Petit souci, cette ligne ne fonctionne pas oWrap.GetAsyncKeyState
    comme on trouve oWrap.GetAsyncKeyState presque à chaque ligne ça ne m'avance pas beaucoup...
    il est possible que ce code, qui a déjà quelques années, ne soit pas compatible avec seven notamment
    au niveau du typage de la valeur renvoyée par GetAsyncKeyState
    je vais voir ça

    edit : lorsque tu trouves une solution (je suppose que tu es sous seven 64bits) ce serait pas mal d'en faire profiter le forum
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Membre émérite

    Homme Profil pro
    Ingénieur Réseaux
    Inscrit en
    Juin 2012
    Messages
    877
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2012
    Messages : 877
    Points : 2 427
    Points
    2 427
    Par défaut
    Bonjour,

    Je n'ai pas posté sur DVP car je devais testé complètement ce qui semblait fonctionné lors du poste sur cet autre forum.

    Je poste donc le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Set oWrap = CreateObject("DynamicWrapperX")
    Const HaltKey = &H1B  'Esc
    With oWrap
      .Register "user32.dll", "SetTimer", "i=llll", "r=l"
      .Register "user32.dll", "KillTimer", "i=ll", "r=l"    
      .Register "user32.dll", "GetAsyncKeyState", "i=l", "r=n"
      .Register "user32.dll", "GetKeyState", "i=l", "r=n"
      .Register "user32.dll", "GetKeyState", "i=l", "r=n"
      .Register "user32.dll", "GetKeyboardLayout", "i=u", "r=u"
    End With 
     
    bLoop=True
    While bLoop
       WScript.Sleep 1000
       If (oWrap.GetAsyncKeyState(&H1B))  Then 
    	   bLoop = False
    	   MsgBox("End")
       End If
        MsgBox("Tourne")
    WEnd
    A noter qu'il faut installer dans C:\Windows\System32 la dll que tu indiques dans un post précédent.

    De plus, la fonction qui me posait problème est asynchrone et pour qu'elle fonctionne, il faut un timer
    Si la réponse vous a été donnée, pensez au Tag .
    Un petit aide à se sentir utile. Merci.

    "La folie. C'est de faire et refaire la même chose en espérant que le résultat sera différent."
    Albert Einstein

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

Discussions similaires

  1. Récupérer une saisie clavier de l'utilisateur
    Par le y@m's dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 23/09/2019, 20h25
  2. [Débutant] Lire une saisie au clavier
    Par popy67 dans le forum C#
    Réponses: 1
    Dernier message: 13/08/2012, 20h49
  3. interrompre une requete pour une saisie clavier
    Par ricoree78 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 24/11/2006, 17h44
  4. Shell, lire une entrée clavier
    Par manuaccess10 dans le forum Linux
    Réponses: 8
    Dernier message: 01/06/2006, 23h01
  5. [Stratégie] attendre un évenement sur une saisie clavier?
    Par ukanoldai dans le forum Général Java
    Réponses: 4
    Dernier message: 28/02/2006, 18h05

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