Вопрос или проблема
У меня есть программа, которую я хочу запускать автоматически при включении моего ноутбука с Windows 10 из режима сна или гибернации без входа в систему. Если программа запущена, должно отображаться окно командной строки. Я пробовал поместить программу в папку автозагрузки Windows, но программа автоматически запускается только при включении ноутбука из режима выключения. Я также пробовал создать задачу в Планировщике заданий для запуска задачи с триггерами, такими как «При событии (Журнал: Система, Источник: Microsoft-Windows-Power-Troubleshooter, Идентификатор события: 1)» и «При разблокировке рабочей станции», но моя программа не запускается при включении ноутбука из режима сна или гибернации (я вошел в систему, чтобы проверить, запущена ли программа, но ее не было). Похоже, нет триггера с именем «При пробуждении» или что-то в этом роде. Если у кого-то есть предложения, как это сделать, я буду очень благодарен!
Set colMonitoredEvents = GetObject("winmgmts:")._
ExecNotificationQuery("SELECT * FROM Win32_PowerManagementEvent")
Do
Set strLatestEvent = colMonitoredEvents.NextEvent
If strLatestEvent.EventType = 4 Then
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
For Each objItem in colItems
If objItem.name = "Calculator.exe" then objItem.terminate
Next
ElseIf strLatestEvent.EventType = 7 Then
wscript.sleep 2000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "calc.exe", 1, false
End If
Loop
Этот скрипт ждет, когда система перейдет в режим сна, и завершает работу калькулятора, если он запущен. При пробуждении он перезапускает калькулятор.
Назовите скрипт как-то.vbs. Дважды щелкните, чтобы запустить его. Он невидим. В диспетчере задач он называется wscript.exe.
Смотрите https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-powermanagementevent для документации.
-
Откройте Планировщик задач и нажмите «Создать задачу», чтобы создать новую задачу.
-
На новой открывшейся панели настройте вкладку «Общие» по своему усмотрению.
-
Затем перейдите на вкладку «Триггеры» и выберите «Создать». Откроется другая панель. В верхней части этой панели выберите «При событии» из выпадающего меню.
-
Затем выберите «Пользовательский» в разделе Настройки и нажмите «Создать фильтр событий». Создайте «Пользовательский фильтр событий» с:
Уровень события: Информация
Имя журнала: Система
Источник: Power-Troubleshooter
Идентификатор события: 1
Редактировать события Планировщика заданий
- Это была важная часть. Теперь перейдите на вкладку «Действия» и выберите программу, которую хотите запустить.
- На вкладке Условия снимите галочку с параметра «Запускать задачу только если компьютер подключен к сети переменного тока».
- Наконец, сохраните задачу, нажав ОК.
Я скопировал это с: https://learn.microsoft.com/en-us/answers/questions/794854/run-a-program-every-time-the-computer-comes-out-of
.
Ответ или решение
Автоматический запуск приложения при восстановлении из режима сна или гибернации в Windows 10
Нередко пользователи сталкиваются с необходимостью автоматического запуска определённых программ при выходе компьютера из режима сна или гибернации в Windows 10. К сожалению, стандартные средства Windows, такие как папка автозагрузки, действуют только при полной загрузке системы. В данном руководстве мы рассмотрим, как настроить автоматический запуск приложения, используя планировщик задач и скрипт на VBScript.
Шаг 1: Использование планировщика задач
-
Открытие Планировщика задач: Запустите «Планировщик задач» (Task Scheduler) через меню «Пуск» или с помощью команды
taskschd.msc
в окне «Выполнить» (Win + R). -
Создание новой задачи: В меню справа выберите «Создать задачу».
-
Заполнение вкладки «Общие»: Укажите название задачи и, при необходимости, добавьте описание.
-
Настройка триггеров: Перейдите во вкладку «Триггеры» и нажмите «Создать…»:
- Выберите «При событии» в выпадающем меню.
- В разделе «Настройка» выберите «Пользовательский» и нажмите «Создать фильтр события…».
- Введите следующие параметры:
- Уровень события: Информация
- Имя журнала: System
- Источник: Power-Troubleshooter
- ИД события: 1
- Нажмите «ОК», затем «Создать».
-
Настройка действий: Перейдите на вкладку «Действия» и выберите «Создать…». Укажите путь к вашему приложению, которое вы хотите запустить.
-
Настройка условий: На вкладке «Условия» снимите галочку с опции «Запускать задачу только если компьютер подключен к сети переменного тока».
-
Сохранение задачи: Нажмите «ОК», чтобы сохранить задачу.
Шаг 2: Использование VBScript для дополнительной настройки
Если вы хотите более гибкий способ управления запуском программы, можете использовать следующий VBScript. Он позволяет отслеживать события системы и запускать приложение при выходе из режима сна и гибернации.
Set colMonitoredEvents = GetObject("winmgmts:").ExecNotificationQuery("SELECT * FROM Win32_PowerManagementEvent")
Do
Set strLatestEvent = colMonitoredEvents.NextEvent
If strLatestEvent.EventType = 4 Then
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_Process")
For Each objItem in colItems
If objItem.name = "ваше_приложение.exe" then objItem.terminate
Next
ElseIf strLatestEvent.EventType = 7 Then
wscript.sleep 2000
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "ваше_приложение.exe", 1, false
End If
Loop
Замените ваше_приложение.exe
на имя вашего файла. Сохраните этот скрипт как .vbs
и настройте его запуск с помощью планировщика задач, как описано выше.
Рекомендации
- Убедитесь, что ваша программа совместима с автозапуском.
- Тестируйте созданные задачи в разных сценариях, чтобы гарантировать их корректную работу.
- Учитывайте, что некоторые функции вашего ПО могут требовать дополнительных прав; при необходимости настраивайте запуск с правами администратора.
Заключение
Следуя данным инструкциям, вы сможете успешно настроить автоматический запуск приложения при восстановлении компьютера из режима сна или гибернации. Использование планировщика задач и VBScript предоставляет гибкие возможности для реализации данной задачи. Если у вас остались вопросы или возникли сложности в процессе настройки, рекомендуется обращаться к специалистам поддержки или изучить документацию Microsoft.
Интересная статья, но хотел бы поделиться своим опытом решения данной проблемы. Я столкнулся с похожей ситуацией и нашёл альтернативный подход, который, на мой взгляд, более надёжен и прост в настройке.
Вместо использования VBScript и сложных настроек Планировщика заданий, можно создать задачу, которая срабатывает при событии пробуждения системы, используя встроенные возможности Windows и более подходящие триггеры.
Вот шаги, которые я предпринял:
Откройте «Планировщик заданий» и создайте новую задачу.
Во вкладке «Общие» установите галочку «Выполнять с наивысшими правами» и выберите «Выполнять независимо от регистрации пользователя».
Перейдите на вкладку «Триггеры» и нажмите «Создать».
В разделе «Начать задачу» выберите «При событии».
В параметрах события укажите:
Журнал: Система
Источник: Kernel-Power
Идентификатор события: 507
Нажмите «ОК» для сохранения триггера.
Во вкладке «Действия» добавьте действие «Запустить программу» и укажите путь к вашему приложению.
Во вкладке «Условия» снимите галочку «Запускать задачу только при питании от сети».
Сохраните задачу.
Преимущество использования события с ИД 507 заключается в том, что оно непосредственно указывает на событие пробуждения системы. Это обеспечивает более точное срабатывание задачи. Кроме того, настройка задачи на выполнение независимо от регистрации пользователя позволяет запускать приложение без необходимости входа в систему.
Также обратите внимание, что использование VBScript может быть избыточным, особенно если можно обойтись стандартными средствами Windows. К тому же, запуск скриптов может быть ограничен политиками безопасности в корпоративной среде.
Надеюсь, мой опыт будет полезен и поможет упростить решение вашей задачи.