Топ новостей


РЕКЛАМА



Календарь

Як запустити програму при виході зі сну або глибокого сну - Вадим Стеркиной

  1. Виконання завдання за подією
  2. Створення завдання в планувальнику
  3. Скрипт для перевірки запущеного процесу

У мене є одна стара програма, яка іноді погано переносить вихід з глибокого сну У мене є одна стара програма, яка іноді погано переносить вихід з глибокого сну. Її значок захований в області повідомлень, і в найпотрібніший момент з'ясовувалося, що програма закрилася. Доводилося запускати її вручну, що дратувало, звичайно.

Ви, напевно, очікуєте розповіді про те, як я спритно виявив причину такої поведінки програми? А я не став розбиратися, тим більше що проблема виявлялася лише час від часу. Замість цього я використовував планувальник завдань для запуску програми при виході зі сну.

Написати цю статтю мене спонукали відразу два питання на цю тему, які виникли в один день в різних форумах конференції OSZone.net. Цікаво, що учасники використовували різні операційні системи - Windows XP і Windows 7. Однак перший з них не зможе скористатися моїм рішенням, тому що можливість запускати завдання при занесенні в журнал певної події з'явилася в Windows, починаючи з Vista.

Виконання завдання за подією

У планувальнику завдань Windows передбачено виконання завдань при запуску комп'ютера і вході користувача в систему. Однак там відсутня можливість запуску завдання при виході із сплячого режиму або глибокого сну. Проте, проблема вирішується завдяки тому, що:

  • в якості тригера для виконання завдання в планувальнику можна вказати подія з журналу (eventvwr.msc)
  • при виході зі сну або глибокого сну в журнал заноситься подія

Джерело та номер події залежать від ОС:

Знання цих фактів достатньо, щоб приступити до створення завдання.

Створення завдання в планувальнику

У планувальнику є майстер створення простої задачі, який проведе вас по всіх кроків.

  1. Відкрийте Пуск - Пошук - Планувальник завдань.
  2. У правій панелі планувальника клацніть Створити просту задачу.
  3. Задайте ім'я завдання і натисніть Далі.
  4. На сторінці Тригер завдання виберіть При занесенні в журнал вказаної події і натисніть Далі.
  5. На сторінці, вкажіть параметри події (нижче наводиться приклад для події 300):
  • На наступних кроках спочатку виберіть Запустити програму, потім вкажіть до неї шлях і параметри командного рядка, якщо необхідно. Я використовував скрипт, про який трохи нижче.
  • Якщо у вас ноутбук, за замовчуванням завдання налаштована буде виконуватися, тільки якщо він підключений до джерела живлення. Двічі клацніть завдання в списку, щоб відкрити її властивості, і на вкладці Умови зніміть це обмеження.

    Тепер при виході із сплячого режиму або глибокого сну буде запускатися зазначена програма. Для ваших цілей цього може бути достатньо, але не виключаю, що вам знадобиться наведений нижче скрипт.

    Скрипт для перевірки запущеного процесу

    Як я сказав вище, проблема з моєю програмою виникала лише час від часу. Тому я не хотів «вбивати» процес без необхідності, так само як і запускати другий примірник програми. Тому на кроці 6 я вказав шлях не до програми, а до скрипту.

    Скрипт перевіряє наявність процесу, і якщо він відсутній, запускає програму.

    @Echo Off SetLocal EnableExtensions Set ProcessName = program.exe TaskList / FI "ImageName EQ% ProcessName%" | Find / I "% ProcessName%" If% ErrorLevel% NEQ 0 Start / d "C: \ Program Files \ Program" program.exe

    збережіть код з розширенням CMD.

    Щоб адаптувати скрипт для своїх потреб, в виділених рядках вкажіть:

    • ім'я процесу
    • шлях до папки з програмою
    • ім'я виконуваного файлу програми

    Як бачите, використовуючи можливості планувальника завдань і журналу подій Windows 7, завдання можна вирішити дуже просто і швидко. Варіанти вирішення цього завдання для Windows XP позначені в цьому повідомленні форуму, але без танців з бубном там не обійтися.

    В основному, я задіюю планувальник завдань для розподілу автозавантаження за часом і запуску програм з повними правами без запиту UAC . А ви використовуєте планувальник? Які завдання і на яких умовах ви налаштували для виконання?

Обговорення завершено.

Ви, напевно, очікуєте розповіді про те, як я спритно виявив причину такої поведінки програми?
А ви використовуєте планувальник?
Які завдання і на яких умовах ви налаштували для виконання?

Реклама



Новости