v1.0.0.3
Введение:
Программа создана для
перевода компьютера в режим сна или гибернации.
Программу писал для себя, т.к.
мой ноутбук отказывается засыпать или переходить в режим гибернации по
истечении времени указанного в параметрах электропитания.
Описание:
Рядом с программой находятся
три файла, файл с параметрами, файл с именами процессов для отслеживания и файл
лога.
Все файлы (кроме самой
программы) после удаления будут созданы вновь с параметрами по умолчанию.
Запуск программы без
параметров выполняет ее в стандартном режиме отслеживания процессов.
По умолчанию в системном трее появляется значок программы. Имеется контекстное меню,
вызываемое правым кликом мыши по значку программы в системном трее. Имеется окно таймера, по умолчанию оно скрыто.
прозрачность окна 30%.
Описание работы программы:
Программа отслеживает в цикле
занимаемое процессорное время приложениями и постоянно ведет обратный отсчет
времени до перевода системы в режим "сна".
Сравнение происходит каждые
10 секунд, вычисляется максимальное процессорное время занятое приложениями из
списка и сравнивается с указанным пользователем порогом. Также программа
отслеживает действия пользователя. При любом действии пользователя (мышь/клавиатура)
или при превышении приложением/процессом указанного порога процессорного
времени считается, что система не простаивает и таймер обратного отсчета сна
сбрасывается к установленному значению.
При отсутствии активности
пользователя и приложения таймер отсчитывает время в обратном порядке до
перевода системы в режим сна.
По умолчанию стоят параметры
подобранные опытным путем под свое железо и приложения:
Переход в ждущий/спящий
режимы = 30 минут,
Процессорное время приложения
в минуту = 6 секунд,
Автоматический перевод
системы в режим = 0 (сон).
Вы сами можете настраивать
все параметры под себя. Обратите внимание, что при работе от батарей
приложение, возможно, будет больше занимать процессорного времени.
Важно! Программа переводит
компьютер в режим сна или гибернации только если они поддерживаются текущей
системой. Например, при наличии "современного" режима простоя в
системах, как правило, отсутствует режим сна S3, но может присутствовать режим
гибернации S4, при включении его в системе. Для того, чтобы программа работала,
измените параметр автоматического перехода из режима сна в режим гибернации.
(Пока это можно сделать через файл настроек программы, 3-я строка, замените в
ней 0 на 1. Позже добавлю возможность поменять этот параметр в контекстном
меню).
Имена отслеживаемых
приложений указываются в файле, который находится в одной папке с программой.
Формат списка в файле - одно название на строку.
Правильные имена приложений
можно получить вызвав окно диспетчер задач, далее кликнув по нужному приложению
и выбрав в контекстном меню - подробно. Откроется список процессов с выделенным
найденным процессом. можно запомнить название или ID процесса.
Также можно запустить окно
процессов из меню программы найти и скопировать оттуда название приложения,
затем добавить его название с список отслеживаемых приложений.
Название файла со списком
отслеживаемых приложений - procnames.txt
Контекстное меню
программы:
TopMost - переключение поверх всех окон (в полноэкранном
режиме приложение перекрывает окно таймера программы);
Opacity + 10% - уменьшает прозрачность окна таймера на 10%
(максимум 100%);
Opacity - 10% - увеличивает прозрачность окна таймера на 10%
(минимум 10%);
Switch border - переключает
видимость рамки окна таймера;
Minimal switch - переключает размер
окна таймера;
Click through
- отключает взаимодействие с мышью (прозрачное окно для щелчков мыши);
Show/hide
window - переключает видимость окна таймера;
------------------------------------------------------------------------------------
Minutes to sleep
- меню с подменю окна ввода времени для таймера сна;
Tresh ptime / minutes
- порог для отслеживания активности программ по процессорному времени;
------------------------------------------------------------------------------------
Processes list - вызывает окно с
запущенными процессами, для удобства поиска требуемых процессов для
отслеживания;
Processes times - вызывает окно со
списком найденных и отслеживаемых процессов в реальном времени, для
отслеживания использования приложениями процессорного времени;
AV status
- вызывает окно со списком мультимедийных устройств (для теста);
------------------------------------------------------------------------------------
Turn off display
- отключает текущий дисплей (включается любым действием пользователя);
System sleep
- переводит систему в режим сна;
System hibernate
- переводит систему в режим гибернации;
------------------------------------------------------------------------------------
Exit - завершает работу программы
Дополнительно:
Также программу можно
запустить с дополнительными параметрами (Если указаны параметры программа не
запускается, она выполняет действие
и закрывается. Не влияет на
уже запущенную программу):
окно со списком команд
вызывается с помощью параметра Help или ?;
Idletimer sleep или 0 - перевести
компьютер в режим сна (с отключенными таймерами пробуждения);
Idletimer hibernate или 1 - перевести
компьютер в режим гибернации (с отключенными таймерами пробуждения);
Idletimer displayoff или 2 -
выключить монитор компьютера (включается любым действием пользователя);
idletimer SetSuspendState - вызывает
процедуру установки режима сна с вводимыми параметрами:
SetSuspendState hibernate forceCritical
disableWakeEvent,
hibernate(true/false) - режим гибернации,
forceCritical(true/false)
- ни на что не влияет,
disableWakeEvent(true/false)
- отключить пробуждение по таймерам;
пример: idletimer SetSuspendState 0 1 0 или idletimer SetSuspendState false true false (переводит систему в режим сна);
idletimer Ignore - отключает вывод
предупреждения о повторном запуске приложения (добавить в планировщике);
ver:
1.0.0.3
Переделал ожидание перехода
на окно с паузой с обратным отсчетом (5 сек). Окно появляется перед запуском
процесса перехода в ждущий и спящий режимы и отключения дисплея. За это время
можно либо производить какие-либо действия с клавиатуры или мыши, тем самым
сбрасывая таймер перехода в режим, или нажав клавишу Esc
или ПКМ в контекстном меню отменить сам переход. (Окно паузы с отсчетом не
включено для команды SetSuspendState).
1.0.0.2
Если вы случайно поставили
программу с переходом в режим сна, гибернации или отключения дисплея в цикл,
ввел функцию проверки нажатой клавиши Shift. Если она нажата и удерживается,
функции управления не происходит.
не исправлено:
1. после открытия окна Prosesses times, желательно
перезапустить программу, т.к. даже после закрытия этого окна программа
продолжает использовать повышенное процессорное время.
2. изменение режима
автоматического перехода не добавлено в контекстное меню (можно изменять только
в файле настроек, третья строка: 0=сон,1=гибернация. Пункт меню добавлю позже.