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=гибернация. Пункт меню добавлю позже.