3

Пожалуйста, прочитайте внимательно; это не обычный вопрос доступности.

Я склонен не выключать компьютер как таковой, а вместо этого переводить его в режим сна. Это ускоряет загрузку и позволяет использовать WOL. Различные методы uptime (sysinfo, uptime.exe, диспетчер задач и т.д.) Будут показывать время с момента последней полной загрузки, что означает, что время, проведенное в спящем режиме, учитывается. Я ищу истинное время работы; то есть, только время с момента последней загрузки, которое мой компьютер провел без сна.

3 ответа3

1

Нет программного обеспечения, которое делает это, поэтому единственный способ, которым вы могли бы сделать это, - это написать скрипт, который в основном дает переменную +1 каждую секунду (или минуту) и имеет способ прочитать значение переменной , Если ваш компьютер находится в режиме гибернации / сна / и т.д., Сценарий не запущен, поэтому счетчик не увеличивается.

Вероятно, это повлияет на систему, если такой скрипт постоянно работает в фоновом режиме, поэтому вопрос в том, насколько сильно вы этого хотите?

(причина воздействия на сценарий) Чем дольше выполняется сценарий, тем выше становится число, а действительно высокое значение означает, что для хранения требуется больше памяти. (речь идет о значениях, которые не могут быть целыми числами (65535), но я полагаю, что если вы достигнете такого высокого уровня, ваша система должна работать и работать в течение дней / недель. Конечно, вы могли бы написать свой сценарий для подсчета дней и сброса значения, которое бы исключило это, но если тогда ваш сценарий проходит через больше кода в своем цикле, который сам по себе также будет влиять на него, даже если он будет небольшим.

1

Windows генерирует системное событие для выхода из спящего режима (Код события: 1, Источник: Power-Troubleshooter). Это событие содержит время сна и бодрствования.

Wake Event

Источник: Wake Source - чтение журнала просмотра событий - Справочные форумы Windows 7

Чтобы определить значение "истинного времени безотказной работы", определите время последней загрузки (из источников, которые вы упомянули), затем вычтите время, потраченное на сон из любых последующих событий пробуждения.

Примечание. Вы можете создать приложение для запроса журнала событий с помощью библиотек .NET (не по теме для суперпользователя).

0

Насколько вы гибки в своем определении «истинного времени работы»?  Вариант ответа LPChip - написать запланированные задачи, которые запускаются при блокировке рабочей станции и разблокировке рабочей станции, а затем выполнить очевидную математическую процедуру.

И, в случае, если математика не очевидна:

  1. Отслеживайте два значения: «логическое» время загрузки и совокупное время работы.  Только один из них будет действителен одновременно.  Поэтому, возможно, вам также нужен флаг, чтобы отслеживать, какой из них действителен, хотя это может быть практически определено контекстом.
  2. Я предполагаю, что вы также хотели бы событие, которое запускается при загрузке системы, или иметь какой-то другой механизм для инициализации «логического» времени загрузки с фактическим временем загрузки.
  3. Когда рабочая станция заблокирована, вычтите логическое время загрузки из текущего времени и сохраните его как совокупное время работы.
  4. Когда рабочая станция разблокирована, вычтите совокупное время безотказной работы из текущего времени и сохраните его как логическое время загрузки.
  5. По запросу вычтите логическое время загрузки из текущего времени и сообщите об этом как «истинное» время работы.  (Это даст вам общее время, в течение которого компьютер был разблокирован.)

Так, например,

  1. Если вы выполняете полную загрузку в 9 часов утра, это экономит 9 часов как логическое время загрузки.
  2. Если вы заблокируете машину в полдень, это сэкономит 3 часа (полдень - 9 утра) в качестве совокупного времени безотказной работы.
  3. Если вы разблокируете машину в 13:00, это экономит 10:00 (13:00 - 3 часа) как логическое время загрузки.
  4. Если вы просите время безотказной работы в 6 вечера, это сообщает 8 часов
    (18:00 - 10:00 = (полдень - 9:00) + (18:00 - 13:00).)

Если вы можете понять, как запускать задачи во время сна и пробуждения, сделайте это, и вы получите именно то, о чем вы просили.  (Но перевод машины в спящий режим вызовет задачу блокировки, и я предполагаю, что ваша система настроена на разблокировку после пробуждения.)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .