问题描述
正如我在“问题”标题中所问的那样,当我不得不多次发送密钥时,如何避免重复键入密钥。
下面是我的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
它既干净又易于编辑。