У меня проблемы с планировщиком задач в Windows 7 Pro. Я хочу запустить скрипт. Ручное выполнение работает безупречно, диспетчер задач ничего не делает.

Часть скрипта устанавливает фокус на конкретное окно, используя этот VBScript:

Dim ObjShell :Set ObjShell = CreateObject("Wscript.Shell")
ObjShell.AppActivate("Notepad")

2 строки выше являются только частью большего скрипта, но для проверки ошибок я исключил все остальное. Сначала я должен запустить его, а затем оригинал.

Блокнот, конечно, открыт, и выполнение VBS вручную устанавливает фокус. Запуск сценария с помощью планировщика задач не устанавливает фокус. Я даже запускал скрипт вручную в планировщике задач (правый клик - запустить) - не устанавливает фокус.

Задача запускается с повышенными привилегиями и с тем же пользователем, что и запуск вручную. Компьютер не выключен, не заблокирован.

Почему скрипт запускается вручную, а не в планировщике задач? Как я могу заставить его работать в планировщике задач?

€ dit: я хочу запустить файл vbs, а не файл .bat, если это возможно, так как я не хочу открывать окно cmd.

2 ответа2

1

Для того чтобы задача имела доступ к интерактивному сеансу (т. Е. Запускает программы и открывают окна), вам необходимо настроить ее для запуска под вошедшим пользователем. Просто перейдите в свойства задачи и на вкладке Общие выберите Run only when user is logged on .

Диалог свойств задачи

Использование другого варианта более безопасно, но это делает его более ограничительным.

0

AppActivate не работает из задачи ; скорее всего, в качестве меры безопасности.

Общий совет в сети (при условии, что вы затем захотите использовать SendKeys и т. П.) - отказаться от использования AutoIt вместо VBScript.

PS: я также пробовал PowerShell с SetForegroundWindow (импортированным из user32.dll), и он вел себя так же, как VBS.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .