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 :

sendkeys + timer


Sujet :

VBScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 90
    Points : 28
    Points
    28
    Par défaut sendkeys + timer
    Bonjour,
    en fait, j'ai beaucoup de documents à numériser. J'utilise le gestion de scan Windows (XP). Entre chaque scan, je fais
    [tab],[tab],[espace],[entrer],[entrer]
    J'aimerais appuyer automatiquement sur cette combinaison de touches toutes les 37s (ou alors, s'il y a d'autres solutions, que le scan soit relancé quelques secondes après sa fin).
    Il paraît que je peux faire ça en VBScript mais je ne sais pas du tout comment ça marche (où on tape on le code, où on l'interpréte, comment et tout ça... gcc à le mérite d'être simple lui lol).
    Bref, quelques explications sur le fonctionnement de VB, VBScript, VB Express et tout seraient les bienvenues (à quoi ça sert et comment on s'en sert).
    Merci.
    bonjour je voudrai le mm fonctionnement et j'arrive pas a trouve le code qui me le permettra avec "sendkeys" et la fonction "timer" je n'arrive pas a le resoudre pour des probleme de syntaxe. je sous exel 2000 merci de m'aider

  2. #2
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    le plus simple si tu n'as pas envie de te lancer dans le VBS c'est d'utiliser Scriptit de chez crosoft (et en plus c'est gratuit !) :

    http://www.microsoft.com/technet/arc....mspx?mfr=true

    Sinon envoyer des touches en WSh ca donne ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Texte = "alut"
     
    set WshShell = WScript.CreateObject("WScript.Shell")
    Commande = "Notepad.exe"
    WshShell.Run Commande, 5,False
    WScript.Sleep 1000
    WshShell.SendKeys "S"
    WScript.Sleep 1000
    WshShell.SendKeys Texte
    WScript.Sleep 1000
    WshShell.SendKeys "{Enter}"
    Note le qui est le timer avec 1000 = 1 seconde.

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 90
    Points : 28
    Points
    28
    Par défaut
    merci beaucoup

  4. #4
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut Tag résolu
    CF signature
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Bonjour j'ai des question à ce sujet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set WshShell = WScript.CreateObject("WScript.Shell")
    Commande = "Notepad.exe"
    WshShell.Run Commande
    Ceci marche pour ouvrir le notepad ou la calculette mais j'ai essayé en mettant le nom d'un autre logiciel comme word ou Paint ou un jeu mais cela ne marche pas. Je voudrait savoir comment on peut faire pour ouvrir ces logiciels.
    2ième question:
    Pourquoi si on enlève le wscript.sleep x la suite ne s'effectue pas? Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    set var=createobject("wscript.shell")
    programme="notepad.exe"
    var.run programme
    var.SendKeys "Bonjour"
    Le bloc note s'ouvre normalement mais "bonjour" ne s'affiche pas.
    Est-ce parce que le bloc note ne s'ouvre pas assez vite et que le var.SendKeys "Bonjour" s'effectue dans le vide?Ou alors "cherches pas c'est comme ça il faut mettre un timer avant et c'est tout"?

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    J'ai trouvé mes deux question pour la première je mets le chemin complet pour la 2ième je disais juste.
    Est ce que quelqu'un sait comment on fait pour appuiyer sur deux touches en même temps avec SendKeys? Comme par exemple ctrl+S pour enregistrer

  7. #7
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    voir aide en ligne

    Pour envoyer des caractères du clavier comprenant une séquence de frappes classique combinée avec MAJ, CTRL ou ALT, créez un argument de chaîne composé représentant la combinaison de frappes. Pour cela, faites précéder la séquence classique par un ou plusieurs des caractères spéciaux suivants :

    Touche Caractère spécial
    MAJ +
    CTRL ^
    ALT %
    Où trouver l'aide en ligne pour VBScript ?

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    L'aide est téléchergeable sur tout sauf vista qui n'est pas écrit.
    Mais cela ne marche pas quand je fais:
    var=Sendkeys CTRL ^"S"
    ou var=sendkeys CTRL^S Pour le premier message d'erreur type incompatible
    string"S"
    pour le deuxième il écrit "1"
    Normalement ça devrait ouvrir la fenêtre pour enregistrer

  9. #9
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Bien que je n'ai jamais utilisé sendkey, j'aurais plutôt fait cela :
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Merci ça marche.Juste que avant d'ouvrir la fenêtre d'enregistrement il écrit CRTL mais c'est pas gênant.

  11. #11
    Membre averti
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Points : 341
    Points
    341
    Par défaut
    Salut,

    regarde le post de BBIL !
    le mot CRTL est remplacé par ^
    la touche mAJ est remplacée par +
    ....

    donc si tu vaux faire F5, il faut faire simplement :

    A++
    Plus tu pédales moins vite, moins t'avances plus vite.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Ha ok merci. Je croyais qu'il fallait écrire le CTRL^^

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Comment fait-on pour écrire la parenthèse avec sendkeys.
    var.sendkeys "parenthèse)"
    Il y a un rapport d'erreur la parenthèse ne lui plait pas

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    J'ai trouvé il faut mettre des acolades
    var.sendkeys "parenthèses{)}"

  15. #15
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par lepetit Voir le message
    L'aide est téléchergeable sur tout sauf vista qui n'est ...
    l'aide c'est le fichier scd56fr.exe ...

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Ha oui merci.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 18
    Points : 17
    Points
    17
    Par défaut
    Bonjour je voudrais faire quelque chose mais je ne sais pas si c'est possible avec vbs comme je n'ai rien trouvé à ce sujet:
    En fait c'est pour connecter un compte d'un jeux online très rapidement(Dofus si quelqu'un connait...)
    J'ai déjà fais ce script qui marche très bien:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    set var=createobject("wscript.shell")
    var.run "C:\Users\Mikaël\Desktop\Dofus.lnk"  'lance le jeu"
    wscript.sleep 3000
    var.sendkeys "nom de compte{tab}mot de passe"  'tape les identifiants
    var.sendkeys "{enter}"      'valide
    wscript.sleep 7000           
     'attente car il y a parfois bcp de monde à se connecter en meme temps
    var.sendkeys"{tab}{tab}{tab}{tab}{tab}{tab}" 'sélectionne le serveur
    var.sendkeys "{enter}"& "{enter}"  'valide
    wscript.sleep 5000   'attente même pour le même raison
    var.sendkeys "{tab}{tab}{tab}{tab}{tab}{tab}{tab}"  'choisit le personnage
    var.sendkeys "{enter}"& "{enter}"   'valide
    Alors je vous explique le problème:
    après avoir tapé les identifiants il y a une attente plus ou moins longue (parfois meme 9-10minutes) et pareil pour après avoir choisir le serveur et le personnage. Donc s'il y a de longues attentes la suite du programme s'éxecute dans le vide comme le timer est de quelques secondes.
    Je voudrais donc pouvoir éxécuter la suite que lorsque le jeu est sur l'écran de sélection du serveur et du personnage.
    J'ai pensé à utiliser une condition sur les couleurs: l'écran d'attente est noir alors que de sélection serveur et personnage est d'une autre couleur donc peut-être quelque chose dans le genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    do while color<>black  'ou le code avec language hexadécimal
                                                         'que je peux connaitre avec Paint
    Loop
    Mais il faudrait désigner une partie précise de l'écran car il n'est pas entièrement noir et déjà que vbs connaisse tout cela.

    Ou alors il y a une autre solution à laquelle je n'ai pas pensé.

    Please help me.

Discussions similaires

  1. Comment faire un Timer de fonction PORTABLE ?
    Par dieuP1guin dans le forum C
    Réponses: 3
    Dernier message: 04/07/2003, 10h44
  2. [horloge] conflit caractère / timer
    Par JeanJean dans le forum C
    Réponses: 10
    Dernier message: 09/05/2003, 23h47
  3. [] [Réseau] Anti-timer, anti-idle
    Par clonevince dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/01/2003, 22h19
  4. Timer de précision
    Par guigui dans le forum MFC
    Réponses: 1
    Dernier message: 04/12/2002, 15h21
  5. Timer en µsecondes
    Par Dagobert dans le forum x86 16-bits
    Réponses: 3
    Dernier message: 25/11/2002, 00h59

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