Windows 8.1: ¿Cómo determinar el tiempo de actividad "real"?

Windows 8.1: ¿Cómo determinar el tiempo de actividad "real"?

Por favor lea cuidadosamente; Esta no es la pregunta habitual sobre el tiempo de actividad.

tiendo a no hacerlocerrarmi computadora per se, sino que la puse en suspensión. Hace que los tiempos de arranque sean más rápidos y me permite usar WOL. Los diversos métodos de 'tiempo de actividad' (sysinfo, uptime.exe, Administrador de tareas, etc.) mostrarán el tiempo transcurrido desde el último arranque completo, lo que significa que se tiene en cuenta el tiempo invertido en dormir.verdaderotiempo de actividad; es decir, sólo el tiempo desde el último arranque que mi PC ha estado despierta.

Respuesta1

No existe ningún software que haga esto, por lo que la única forma de hacerlo es escribiendo un script que básicamente le dé a una variable un +1 cada segundo (o minuto), y tenga una manera de leer el valor de la variable. . Si su PC está en hibernación/suspensión/etc., el script no se está ejecutando, por lo que el contador no aumenta.

Es probable que afecte al sistema si dicho script se ejecuta constantemente en segundo plano, por lo que la pregunta es: ¿cuánto desea esto?

(motivo del impacto en el script) cuanto más se ejecuta el script, mayor es el número, y un valor que es realmente alto significa que necesita más memoria para almacenar. (hablando de valores que no pueden ser números enteros (65535), pero supongo que si llega tan alto, su sistema debe estar funcionando durante días/semanas. Por supuesto, puede escribir su script para contar los días y restablecer el valor que eliminaría eso, pero si luego su secuencia de comandos pasa por más código en su ciclo, eso en sí mismo también lo afectará, aunque sea poco.

Respuesta2

Windows genera un evento del sistema para despertar del modo de suspensión (ID de evento: 1, Fuente: Power-Troubleshooter). Este evento contiene los tiempos de sueño y vigilia.

Evento de despertar

Fuente:Wake Source - Leer registro del visor de eventos - Foros de ayuda de Windows 7

Para determinar su valor de "tiempo de actividad real", determine el último tiempo de inicio (de las fuentes que mencionó) y luego reste el tiempo dedicado a dormir de cualquier evento de activación posterior.

Nota: Puede crear una aplicación para consultar el registro de eventos utilizando bibliotecas .NET (fuera de tema en Superusuario).

Respuesta3

¿Qué tan flexible es usted en su definición de “verdadero tiempo de actividad”? Una variación deLa respuesta de LPChip es escribir tareas programadas que se activan mediante el bloqueo y el desbloqueo de la estación de trabajo, y luego hacer los cálculos obvios.

Y, en caso de que las matemáticas no sean obvias:

  1. Mantenga un registro de dos valores: tiempo de arranque "lógico" y tiempo de actividad acumulativo. Sólo uno de estos será válido a la vez. Entonces, podría decirse que también necesitas una bandera para realizar un seguimiento de cuál de ellas es válida, aunque esto prácticamente puede determinarse por el contexto.
  2. Supongo que también querrás un evento que se ejecute durante el arranque del sistema, o tener algún otro mecanismo para inicializar el tiempo de arranque "lógico" al tiempo de arranque real.
  3. Cuando la estación de trabajo esté bloqueada, reste el tiempo de inicio lógico de la hora actual y guárdelo como tiempo de actividad acumulativo.
  4. Cuando la estación de trabajo esté desbloqueada, reste el tiempo de actividad acumulativo de la hora actual y guárdelo como tiempo de inicio lógico.
  5. Si lo solicita, reste el tiempo de inicio lógico de la hora actual e informe esto como el tiempo de actividad "verdadero". (Esto le dará la cantidad total de tiempo que la PC ha estado desbloqueada).

Así por ejemplo,

  1. Si realiza un arranque completo a las 9 a. m., esto guarda las 9 a. m. como hora de arranque lógica.
  2. Si bloquea la máquina al mediodía, esto ahorra 3 horas (mediodía - 9 a.m.) como tiempo de actividad acumulativo.
  3. Si desbloquea la máquina a la 1 p.m., esto ahorra las 10 a.m. (1 p.m. − 3 horas) como hora de inicio lógica.
  4. Si solicita tiempo de actividad a las 6 p. m., esto informa 8 horas
    (6 p. m. − 10 a. m. = (mediodía − 9 a. m.) + (6 p. m. − 1 p. m.).

Si puede descubrir cómo activar tareas para que se ejecuten mientras duerme y despierta, hágalo y obtendrá exactamente lo que solicitó. (Pero poner la máquina en suspensión activará la tarea de bloqueo, y supongo que tiene su sistema configurado para requerir desbloqueo después de despertar).

información relacionada