2013-05-11 4 views
0
Option Explicit 
Dim objShell, intRetVal, intErrNum 
Dim sn As String 
Set objShell = CreateObject("WScript.Shell") 

objShell.Run("c:\Windows\System32\notepad.exe") 
WScript.Sleep 2000 

sn = f 

If objShell.AppActivate("Untitled - Notepad") Then 
    WScript.Sleep 500 
    objShell.SendKeys "%{sn}" 

End If 

Dans le code VBS ci-dessus, je suis en train de passer alt + f Clé à - l'application « sans titre Bloc-notes » mais au lieu de la clé qui passe je voulais directement assigné à une variable, puis passez la variable.Assigne la clé variable et passer variable clé dans vbs

Mais code ci-dessus est en dessous de jeter l'erreur lors de l'exécution du script,

E: \ vbs \ test2.vbs (3, 8) erreur de compilation Microsoft VBScript: Expec ted fin de l'instruction

Comment devrait J'ai assigné la clé à la variable et j'ai transmis la variable comme clé.

Répondre

2

Il y a 3 erreurs dans votre script:

  1. Dim sn As String

    Comme Adrien Lacroix déjà souligné, VBScript ne prend pas en charge déclarations de variables typées comme le fait VBA. Changer cette ligne dans ce:

    Dim sn 
    
  2. sn = f

    Vous voulez attribuer le caractère f à la sn variable, donc vous devez la première une chaîne réelle en le plaçant entre guillemets doubles:

    sn = "f" 
    
  3. objShell.SendKeys "%{sn}"

    VBScript DOE sn't supporte l'expansion des variables à l'intérieur des chaînes. Si vous voulez construire des chaînes avec des valeurs à partir de variables, vous devez concaténer la variable avec les littéraux de chaîne. En outre, les accolades sont destinées à générer des séquences de touches spéciales (par exemple {Right} pour ou {F10} pour F10), pas pour une extension variable. Voir le documentation pour plus de détails.Pour envoyer Alt +F vous avez besoin:

    objShell.SendKeys "%" & sn 
    
+0

Grand, merci beaucoup pour l'aide. Cela a fonctionné pour moi. –

1

Je pense que votre erreur est sur cette ligne (E: \ vbs \ test2.vbs (3, 8)):

sn = f 

provoquées par celui-ci:

Dim sn As String 

De MSDN: "en VBScript, les variables sont toujours d'un type de données fondamentales, la variante"

VBScript ne prend pas en charge les types de données en tant que tels, donc supprimez tous les types de données de vos déclarations. Par exemple, cette ligne doit être juste:

Dim sn

+0

Merci pour la réponse. J'ai essayé d'utiliser la solution ci-dessus, mais maintenant il ouvre l'application du bloc-notes, mais ne passe pas la touche alt + f. Vous avez l'erreur ci-dessous lors du passage de la clé, "E: \ vbs \ test2.vbs (15, 4) erreur d'exécution Microsoft VBScript: appel de procédure non valide ou argument" –

Questions connexes