Автоматическое выполнение задачи при выходе из сна или гибернации

Вопрос или проблема

У меня есть программа, которую я хочу запускать автоматически при включении моего ноутбука с 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 для документации.

  1. Откройте Планировщик задач и нажмите «Создать задачу», чтобы создать новую задачу.

  2. На новой открывшейся панели настройте вкладку «Общие» по своему усмотрению.

  3. Затем перейдите на вкладку «Триггеры» и выберите «Создать». Откроется другая панель. В верхней части этой панели выберите «При событии» из выпадающего меню.

  4. Затем выберите «Пользовательский» в разделе Настройки и нажмите «Создать фильтр событий». Создайте «Пользовательский фильтр событий» с:

Уровень события: Информация
Имя журнала: Система
Источник: Power-Troubleshooter
Идентификатор события: 1
Редактировать события Планировщика заданий

  1. Это была важная часть. Теперь перейдите на вкладку «Действия» и выберите программу, которую хотите запустить.
  2. На вкладке Условия снимите галочку с параметра «Запускать задачу только если компьютер подключен к сети переменного тока».
  3. Наконец, сохраните задачу, нажав ОК.

Я скопировал это с: 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: Использование планировщика задач

  1. Открытие Планировщика задач: Запустите «Планировщик задач» (Task Scheduler) через меню «Пуск» или с помощью команды taskschd.msc в окне «Выполнить» (Win + R).

  2. Создание новой задачи: В меню справа выберите «Создать задачу».

  3. Заполнение вкладки «Общие»: Укажите название задачи и, при необходимости, добавьте описание.

  4. Настройка триггеров: Перейдите во вкладку «Триггеры» и нажмите «Создать…»:

    • Выберите «При событии» в выпадающем меню.
    • В разделе «Настройка» выберите «Пользовательский» и нажмите «Создать фильтр события…».
    • Введите следующие параметры:
      • Уровень события: Информация
      • Имя журнала: System
      • Источник: Power-Troubleshooter
      • ИД события: 1
    • Нажмите «ОК», затем «Создать».
  5. Настройка действий: Перейдите на вкладку «Действия» и выберите «Создать…». Укажите путь к вашему приложению, которое вы хотите запустить.

  6. Настройка условий: На вкладке «Условия» снимите галочку с опции «Запускать задачу только если компьютер подключен к сети переменного тока».

  7. Сохранение задачи: Нажмите «ОК», чтобы сохранить задачу.

Шаг 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.

Оцените материал
Добавить комментарий

Капча загружается...

  1. Гость

    Интересная статья, но хотел бы поделиться своим опытом решения данной проблемы. Я столкнулся с похожей ситуацией и нашёл альтернативный подход, который, на мой взгляд, более надёжен и прост в настройке.

    Вместо использования VBScript и сложных настроек Планировщика заданий, можно создать задачу, которая срабатывает при событии пробуждения системы, используя встроенные возможности Windows и более подходящие триггеры.

    Вот шаги, которые я предпринял:

    Откройте «Планировщик заданий» и создайте новую задачу.
    Во вкладке «Общие» установите галочку «Выполнять с наивысшими правами» и выберите «Выполнять независимо от регистрации пользователя».
    Перейдите на вкладку «Триггеры» и нажмите «Создать».
    В разделе «Начать задачу» выберите «При событии».
    В параметрах события укажите:

    Журнал: Система
    Источник: Kernel-Power
    Идентификатор события: 507

    Нажмите «ОК» для сохранения триггера.
    Во вкладке «Действия» добавьте действие «Запустить программу» и укажите путь к вашему приложению.
    Во вкладке «Условия» снимите галочку «Запускать задачу только при питании от сети».
    Сохраните задачу.

    Преимущество использования события с ИД 507 заключается в том, что оно непосредственно указывает на событие пробуждения системы. Это обеспечивает более точное срабатывание задачи. Кроме того, настройка задачи на выполнение независимо от регистрации пользователя позволяет запускать приложение без необходимости входа в систему.

    Также обратите внимание, что использование VBScript может быть избыточным, особенно если можно обойтись стандартными средствами Windows. К тому же, запуск скриптов может быть ограничен политиками безопасности в корпоративной среде.

    Надеюсь, мой опыт будет полезен и поможет упростить решение вашей задачи.

    Ответить