Batch-VBScript发送特定密钥的次数

问题描述

正如我在“问题”标题中所问的那样,当我不得不多次发送密钥时,如何避免重复键入密钥。

下面是我的Batch-VBScript混合体,其中,为了发送4次{DOWN}键,我尝试了以下代码,但没有用?:

FINDSTR /E "'VbsCode" %~f0 > %temp%\~temp.vbs
CSCRIPT //NOlogo %temp%\~temp.vbs
Sub TestAppAuto 'VbsCode
    On Error Resume Next 'VbsCode
    Set WshShell = WScript.CreateObject("WScript.shell") 'VbsCode
    WshShell.Visible = False 'VbsCode
    WshShell.Run "test.app",0 'VbsCode
    WScript.Sleep 500 : WshShell.AppActivate "Test Window Title" 'VbsCode
    WScript.Sleep 500 : WshShell.sendKeys "{DOWN}{4}" 'VbsCode
    :: Instead of WScript.Sleep 500 : WshShell.sendKeys "{DOWN}{DOWN}{DOWN}{DOWN}" 'VbsCode
End Sub 'VbsCode
TestAppAuto 'VbsCode
WScript.Quit 0 'VbsCode

我如何实现我想要的?

解决方法

从帮助http://download.microsoft.com/download/winscript56/Install/5.6/W982KMeXP/EN-US/scrdoc56en.exe

您可以使用SendKeys方法发送一种击键模式 由一个连续几次按下的按键组成。去做 为此,创建一个指定按键的复合字符串参数 您想重复一次,然后是您想要重复的次数 重复。您可以使用以下形式的复合字符串参数来执行此操作 {击键编号}。例如,要发送十次字母“ x”, 您将发送字符串参数“ {x 10}”。确保包括 击键和数字之间的空格。

,

我在VBS脚本中实现了for循环,需要多次按键才能提高youtube的音量。

For i = 0 to 20
WshShell.SendKeys ("{RIGHT}")
Next

它既干净又易于编辑。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...