2010-03-11 14 views
5

¿Hay alguna manera de probar, usando Python, cuánto tiempo ha estado inactivo el sistema en Mac? O, en su defecto, incluso si el sistema está actualmente inactivo?Prueba de inactividad en Python en Mac

respuesta

Utilizando la información de la solución aceptada, aquí es una función fea pero funcional y bastante eficiente para el trabajo:

from subprocess import * 

def idleTime(): 
    '''Return idle time in seconds''' 

    # Get the output from 
    # ioreg -c IOHIDSystem 
    s = Popen(["ioreg", "-c", "IOHIDSystem"], stdout=PIPE).communicate()[0] 
    lines = s.split('\n') 

    raw_line = '' 
    for line in lines: 
     if line.find('HIDIdleTime') > 0: 
      raw_line = line 
      break 

    nano_seconds = long(raw_line.split('=')[-1]) 
    seconds = nano_seconds/10**9 
    return seconds 
+0

¿Qué significa "inactivo"? ¿Cómo lo defines? –

+0

Lo que el sistema define como "inactivo". Es decir. lo que el sistema considera tiempo inactivo antes de promulgar Screensaver o Energy Saver. Supongo que ningún movimiento de mouse o teclado estaría bien. –

Respuesta

0

No probado (por ahora), pero according to this thread que podría analizar la salida de

ioreg -c IOHIDSystem

+0

De acuerdo, eso funciona. Publicando mi solución en la pregunta original. Gracias por el liderazgo. –

Cuestiones relacionadas