我在使用 Windows 7 Pro 中的任务计划程序时遇到了麻烦。我想运行一个脚本。手动执行工作正常,任务管理器什么也不做。
脚本的一部分是使用以下 VBScript 将焦点设置到特定窗口上:
Dim ObjShell :Set ObjShell = CreateObject("Wscript.Shell")
ObjShell.AppActivate("Notepad")
上面两行只是更大脚本的一部分,但为了检查错误,我排除了其他所有内容。首先我必须运行它,然后再运行原始脚本。
当然,记事本是打开的,手动执行 vbs 会设置焦点。使用任务计划程序运行脚本不会设置焦点。我甚至在任务计划程序中手动运行了脚本(右键单击 - 运行) - 也没有设置焦点。
该任务以提升的权限运行,并且由与手动启动相同的用户运行。计算机未关闭,也未锁定。
为什么脚本可以手动运行,但不能在任务计划程序中运行?如何让它在任务计划程序中运行?
€dit:如果可能的话,我想运行 vbs 文件而不是 .bat 文件,因为我不想打开 cmd 窗口。
答案1
答案2
AppActivate 无法通过任务运行;很可能是作为一种安全预防措施。
网络上的一般建议(假设你想使用 SendKeys 和类似的东西)是放弃并使用自动识别而不是 VBScript。
PS:我也尝试过PowerShell 与 SetForegroundWindow(从user32.dll导入),其行为与VBS相同。