2017-05-25 47 views
1

在Windows 10中,我对“calc”使用完全相同的vbscript代码,对“taskmgr”使用一次。为什么SendKeys(这里是alt + space)适用于“calc”而不适用于“taskmgr”?VBScript中的SendKeys不能用于taskmgr

<package> 
    <job id="vbs"> 
    <script language="VBScript"> 
     set WshShell = WScript.CreateObject("WScript.Shell") 
     WshShell.Run "calc" 
     WScript.Sleep 100 
     WshShell.SendKeys "% " 
    </script> 
    </job> 
</package> 

(按预期工作,下拉菜单中打开)

<package> 
    <job id="vbs"> 
    <script language="VBScript"> 
     set WshShell = WScript.CreateObject("WScript.Shell") 
     WshShell.Run "taskmgr" 
     WScript.Sleep 100 
     WshShell.SendKeys "% " 
    </script> 
    </job> 
</package> 

(没有工作,没有下拉菜单...)

+0

对于Windows 7,它正在工作。你可以试试WshShell.SendKeys“%()”吗? – Gurman

+0

@Kira感谢您的建议。 “%()”的行为就像“%”:适用于calc,不适用于taskmgr ... – Linus

+2

是以Admin身份运行的任务管理器吗?如果是,您的脚本是否也以Admin身份运行? – Helen

回答

0

所有权利。感谢大家在评论中的帮助。 因此,为了sendKeys为taskmgr工作,脚本必须以管理员身份运行。这可以通过以管理员身份打开命令提示符完成,然后

cscript myScript.wsf