Problème script .vbs

Résolu
Bonjour,
Quelqu'un peurrait me dire pourquoi ce script ne fonctionne pas merci d'avance

Dim oShell
dim i 
Dim arrTouches1, arrTouches2, arrTouches3, arrTouches4, arrTouches5, arrTouches6, arrTouches7, arrTouches8, arrTouches9, arrTouches10, arrTouches11, arrTouches12, arrTouches13, arrTouches14, arrTouches15, arrTouches16, arrTouches17, arrTouches18, arrTouches19, arrTouches20, arrTouches21, arrTouches22, arrTouches23, arrTouches24, arrTouches25, arrTouches26, arrTouches27, arrTouches28, arrTouches29, arrTouches30, arrTouches31, arrTouches32, arrTouches33, arrTouches34, arrTouches35, arrTouches36, arrTouches37, arrTouches38, arrTouches39, bActivate, bExec
arrTouches1 = Array("s")
arrTouches3 = Array("a")
arrTouches4 = Array("l")
arrTouches5 = Array("u")
arrTouches6 = Array("t")
arrTouches7 = Array(" ")

arrTouches8 = Array("j")
arrTouches9 = Array("'")
arrTouches10 = Array("a")
arrTouches11 = Array("i")
arrTouches12 = Array(" ")

arrTouches13 = Array("p")
arrTouches14 = Array("r")
arrTouches15 = Array("i")
arrTouches16 = Array("s")
arrTouches17 = Array(" ")

arrTouches18 = Array("l")
arrTouches19 = Array("e")
arrTouches20 = Array(" ")

arrTouches21 = Array("c")
arrTouches22 = Array("o")
arrTouches23 = Array("n")
arrTouches24 = Array("t")
arrTouches25 = Array("r")
arrTouches26 = Array("o")
arrTouches27 = Array("l")
arrTouches28 = Array("e")
arrTouches29 = Array(" ")

arrTouches30 = Array("d")
arrTouches31 = Array("e")
arrTouches32 = Array(" ")

arrTouches33 = Array("t")
arrTouches34 = Array("o")
arrTouches35 = Array("n")
arrTouches36 = Array(" ")

arrTouches37 = Array("P")
arrTouches38 = Array("C")

Set oShell = CreateObject("WScript.Shell")
bExec = oShell.Run("notepad.exe")
WScript.Sleep 2000
bActivate = oShell.AppActivate("Notepad")
For i=0 To UBound(arrTouches1, arrTouches2, arrTouches3, arrTouches4, arrTouches5, arrTouches6, arrTouches7, arrTouches8, arrTouches9, arrTouches10, arrTouches11, arrTouches12, arrTouches13, arrTouches14, arrTouches15, arrTouches16, arrTouches17, arrTouches18, arrTouches19, arrTouches20, arrTouches21, arrTouches22, arrTouches23, arrTouches24, arrTouches25, arrTouches26, arrTouches27, arrTouches28, arrTouches29, arrTouches30, arrTouches31, arrTouches32, arrTouches33, arrTouches34, arrTouches35, arrTouches36, arrTouches37, arrTouches38, arrTouches39)
 WScript.Sleep 100
 oShell.SendKeys arrTouches1, arrTouches2, arrTouches3, arrTouches4, arrTouches5, arrTouches6, arrTouches7, arrTouches8, arrTouches9, arrTouches10, arrTouches11, arrTouches12, arrTouches13, arrTouches14, arrTouches15, arrTouches16, arrTouches17, arrTouches18, arrTouches19, arrTouches20, arrTouches21, arrTouches22, arrTouches23, arrTouches24, arrTouches25, arrTouches26, arrTouches27, arrTouches28, arrTouches29, arrTouches30, arrTouches31, arrTouches32, arrTouches33, arrTouches34, arrTouches35, arrTouches36, arrTouches37, arrTouches38, arrTouches39(i)
Next
Set oShell = Nothing

2 réponses

  1. Modérateur
    Bonjour,

    Je pense que ton souci vient de ton UBOUND....
    http://www.w3schools.com/vbscript/func_ubound.asp

    Cela vient aussi de ta logique.. pourquoi déclarer un tableau par Lettre... alors que tu pourrais faire UN TABLEAU pour TOUTES les lettres ??

    Dim arrTouches(37)
    arrTouches(0) = "s"
    arrTouches(1) = "a"
    arrTouches(2) = "l"
    arrTouches(3) = "u"
    arrTouches(4) = "t"
    ' etc...
    
    
    'la boucle deviendrait alors...
    For i=0 To UBound(arrTouches)
     WScript.Sleep 100
     oShell.SendKey arrTouches(i)
    Next
    


    0
    1. sa ne marche pas mais merci d'avoir réponde. Pourquoi faire un tableau lettre par lettre ?
      car je veut que sa donne l'effet que quelqu'un écrit. J'ai récupérer ce script sur internet et je l'ai un peu modifier donc je comprend pas trop. Merci de répondre.
      0
    2. Modérateur
      @DamDC91Le souci.. c'est que....
      sa ne marche pas
      ne nous permet pas de trouver l'erreur.....
      Lorsque tu as un message d'erreur (et c'etait forcément le cas avec mon code...) tu dois le lire et essayer de le comprendre pour le corriger.... et /ou au moins.. nous le donner !!!!

      Donc.. une fois le message d'erreur lu... tu t'aperçois que j'ai écrit : Sendkey .. au lieu de Sendkeys ....

      Voici le code corrigé =>>
      Dim oShell
      dim i 
      Dim arrTouches(5)
      arrTouches(0) = "s"
      arrTouches(1) = "a"
      arrTouches(2) = "l"
      arrTouches(3) = "u"
      arrTouches(4) = "t"
      ' etc...
      
      
      
      Set oShell = CreateObject("WScript.Shell")
      bExec = oShell.Run("notepad.exe")
      WScript.Sleep 2000
      bActivate = oShell.AppActivate("Notepad")
      'la boucle deviendrait alors...
      For i=0 To UBound(arrTouches)
       WScript.Sleep 200
       oShell.SendKeys arrTouches(i)
      Next
      Set oShell = Nothing
      


      NB: Pour ajouter des lettres supplémentaires...n'oublies pas qu'il faut ausi que tu modifies aussi la variable (5) qui se trouve dans le dim du arrTouches...
      0
  2. merci d'avoir répondu mais sa ne marche toujours pas, le message d'erreur est type incompatible sendkeys.
    0
    1. Modérateur
      Tu as copié collé exactement mon code ?
      Tu es sur quel OS ?
      le notepad s' ouvre ?
      0
    2. @jordane45J'ai bien copier collé en complétant avec le début de mon script
      Le notepad s'ouvre
      Je ne sais pas c'est quoi un OS
      0
    3. @jordane45J'ai bien copier collé en complétant avec le début de mon script
      Le notepad s'ouvre
      Je ne sais pas c'est quoi un OS
      0
    4. @jordane45Le notepad s'ouvre
      J'ai bien copié/collé le script en le complétant avec le début du mien
      Je ne sais pas se que c'est qu'un OS
      Dsl
      0
    5. Modérateur
      Os: système d'exploitation .... autrement dit. .. windos... (quelle version as tu ?)

      Avant de coller le reste de TON script. .. testes le mien tel quel et confirme nous qu'il fonctionne. ..
      0