VBScript中的SendKeys不适用于taskmgr

问题描述 投票:1回答:2

在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>

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

vbscript sendkeys
2个回答
0
投票

行。感谢大家的评论。因此,要使sendKeys为taskmgr工作,脚本必须以管理员身份运行。这可以通过以管理员身份打开命令提示符来完成

cscript myScript.wsf

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关闭/终止“旧”实例

© www.soinside.com 2019 - 2024. All rights reserved.