在Windows 10中,我使用完全相同的vbscript代码一次用于“calc”,一次用于“taskmgr”。为什么SendKeys(这里是alt + space)适用于“calc”而不适用于“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 :(得分:0)
好的。感谢大家的评论。 因此,要使sendKeys为taskmgr工作,脚本必须以管理员身份运行。这可以通过以管理员身份打开命令提示符然后
来完成cscript myScript.wsf
答案 1 :(得分:0)
我认为您错过了第二次击键。 对我来说,这有效:
DIM shell
SET shell = WScript.CreateObject("WScript.Shell")
shell.Run "taskmgr.exe", 1, False
WScript.Sleep(100)
shell.SendKeys "% "
shell.SendKeys "n" '<- this is what you might have missed
但是它仅在由同一用户运行时才起作用(请注意,您不能同时运行两个taskmgr实例。当有一个“旧”实例时,该实例将被带到前台,而没有新实例即使“旧”实例在其他用户下运行,也会被创建。在这种情况下,您可能需要使用taskkill /im taskmgr.exe