2008-11-03 6 views
3

J'essaie d'utiliser la méthode WScript.Shell SendKeys pour émuler l'envoi d'une touche depuis le pavé numérique.Comment utiliser WScript.Shell SendKeys pour envoyer des frappes de touches numériques?

J'ai une application dans laquelle j'écris des tests automatisés pour utiliser QTP. C'est une application basée sur un navigateur Web et l'entrée est dans une application Java dans la page Web. L'entrée n'accepte que les appuis sur les touches numériques et la touche Entrée.

Jusqu'à présent, je me sers de ce code:

Dim strInputKey 
strInputKey = "{ENTER}" 
Set objWsh = CreateObject("WScript.Shell") 
Browser("Launch Browser").Page("Test Application").WebElement("Item ID").Click 
objWsh.SendKeys strInputKey 

Cela fonctionne bien pour envoyer la touche Entrée, mais je ne peux pas tout à fait comprendre s'il y a un moyen d'envoyer Touches numériques. Toute aide serait grandement appréciée.

Je ne sais pas s'il existe des moyens non documentés d'y parvenir. J'ai lu http://msdn.microsoft.com/en-us/library/8c6yea83(VS.85).aspx mais il ne va pas dans les moindres détails.

Merci à l'avance,

  • Brent

Répondre

1

Je n'ai pas le représentant de commenter la réponse ci-dessus que ledit objWsh.SendKeys chr (79) & chr (80) & chr (81)

mais je ne pense pas qu'il soit correct

objWsh.SendKeys chr (79) & chr (80) & chr (81)
Pour commencer, il envoie les lettres O, P, Q Et il veut des chiffres, comme 1234567890

et le lien va aux codes de balayage du clavier .. Je pense que ceux-ci sont pour savoir quelle touche sur le clavier a été pressé. Ils sont différents des codes ascii.
79,80,81 sont les codes de balayage du clavier pour certains numéros sur le pavé numérique/pavé numérique. Chr, utilise des codes ASCII. pas les codes de balayage du clavier. En outre, il suffit de spécifier ici un chiffre, puisqu'il n'est pas fait en appuyant sur une touche, il ne précise pas et n'a pas besoin de spécifier, quelle était la clé utilisée, puisqu'une clé n'a pas été utilisée. Pour envoyer des nombres (à partir du pavé numérique), c'est exactement la même chose que d'envoyer des clés à partir de la rangée supérieure. Vous voulez juste envoyer quelques chiffres.

Si tout ce qu'il veut savoir, c'est comment utiliser sendkeys pour envoyer des chiffres, alors évidemment. ObjWsh.SendKeys 12345 ou str = "12345" objWsh.SendKeys str

Mais si le questionneur ne s'est pas rendu compte que objWsh.SendKeys 12345 le ferait, alors peut-être que le questionneur est juste confus. Je suppose que de la coche verte, il a voté une réponse qui est comme objWsh.SendKeys "OPQ".

Je sais que cela est une question ancienne, mais pour le bien de Haing questions et réponses ..

+0

Ce n'est pas ce que je demandais. Le commentaire auquel vous répondez explique comment utiliser le pavé numérique, ce dont j'avais besoin pour terminer la tâche sur laquelle je travaillais. Merci pour vos efforts cependant; mais vous pouvez voir dans ma question que je mentionne d'utiliser la méthode SendKeys déjà avec une chaîne de base. –

+0

Sa réponse, qui était objwsh.SendKeys chr (79) & chr (80) & chr (81) <--- Cela affiche OPQ. Il n'affiche pas les nombres. Je l'ai testé avec Set objShell = CreateObject ("WScript.Shell") et avec objShell.SendKeys chr (79) & chr (80) & chr (81) Donc je ne comprends pas comment ça a aidé 'parce que vous vouliez quelque chose impliquant le pavé numérique. – barlop

+0

Oh, je vois pourquoi vous êtes confus. L'aide était l'exemple et le lien vers la page. J'ai été capable de l'utiliser pour compléter ce que j'essayais de faire. De toute façon, j'apprécie vos efforts! –

0
Dim objWsh 
Set objWsh = CreateObject("WScript.Shell") 
Browser("Browser").Page("Page_5").WebEdit("txnConfiguration.criteriaName").Click 

objWsh.SendKeys ("123") 

Browser("Browser").Page("Page_5").WebEdit("txnConfiguration.criteriaName").Set "12345" 

le code ci-dessus le numéro d'entrée « 12345 » en zone de texte en utilisant la méthode SendKeys

+0

Vous n'avez pas lu la question, cependant. –

Questions connexes