Seguimiento de su día con PowerShell
El código para obtener la ventana activa fue la parte más sencilla. Pero descubrí que necesitaba tener en cuenta situaciones en las que el proceso activo era para algo no interactivo. También descubrí que obtienes algunos artefactos extraños al usar Alt-Tab para alternar entre aplicaciones abiertas.
Una vez que tuve una colección de objetos que representaban las diferentes ventanas activas, me di cuenta de que sería útil tener un conjunto de herramientas para medir y analizar los datos, así que escribí una función para eso. El resultado final es un módulo de PowerShell al que llamo MyMonitor.
El módulo incluye un archivo de formato personalizado y el archivo .psm1 agrega algunas definiciones de tipos personalizados. El comando principal es Get-WindowTime. Este comando monitoreará sus ventanas durante una cantidad específica de minutos, hasta una fecha y hora específica, o si se detecta un proceso específico. Para realizar un seguimiento durante períodos de tiempo más largos, utilice el parámetro -AsJob.
Deberías terminar con datos como estos:
PS C:\work> $data[0..2]
Time : 00:03:00.5083791
Application : Windows PowerShell
WindowTitle : Windows PowerShell 4.0
Product : Microsoft® Windows® Operating System
Time : 00:32:02.6150152
Application : Windows PowerShell ISE
WindowTitle : Administrator: Windows PowerShell ISE
Product : Microsoft® Windows® Operating System
Time : 00:13:47.6952161
Application : Virtual Machine Connection
WindowTitle : CHI-Win7 on WIN81-ENT-01 - Virtual Machine Connection
Product : Microsoft® Windows® Operating System
Luego puede medir los datos.
PS C:\work> $data | Measure-WindowTotal | sort TotalTime
Application TotalTime
----------- ---------
Microsoft Word 00:00:34.3653455
Notepad 00:00:34.3654881
Microsoft Management Console 00:00:37.2989472
SAPIEN PowerShell Studio 2014 00:00:51.5242522
Thunderbird 00:01:55.6696204
Windows PowerShell 00:03:00.5083791
Google Chrome 00:06:34.6744841
Virtual Machine Connection 00:13:47.6952161
Windows PowerShell ISE 00:32:02.6150152O ver cuánto tiempo pasaste en Facebook.
PS C:\work> $data | Measure-WindowTotal -filter facebook
Application TotalTime
----------- ---------
Google Chrome 00:03:23.1318619Esto es de una pequeña muestra.
Mi módulo también incluye un tema acerca de, que publicaré aquí.
Espero que lo pruebes y me cuentes lo que piensas. Asegúrese de leer la ayuda y los ejemplos de todos los comandos.
Descargue el archivo zip MyMonitor y extráigalo a su carpeta de módulos.
Actualización: esto no rastreará aplicaciones de Windows 8 como Weather o Foo & Drink.