Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I am looking for a program - ideally free and supporting Windows 7 - to log when

ID: 660823 • Letter: I

Question

I am looking for a program - ideally free and supporting Windows 7 - to log whenever windows are moved to another monitor. E.g. the log would be something like:

Datetime, application name, monitor source, monitor destination
2014-04-25 01:02, Google Chrome, Monitor 1, Monitor 3
2014-04-25 01:05, Microsoft PowerPoint, Monitor 4, Monitor 2
etc

If possible, it would also record when a monitor is disabled or enabled, as well as when a window is minimized, reduced or maximized.

Purpose:

better understand how windows are shuffled around my laptop goes to sleep
self-quantification and productivity analysis: e.g. optimize the way I move windows around by spotting inefficient/useless moves in the log
spot weird behavior: e.g. a window gets minimized in a monitor, and when I reopen it it appears in another monitor.

Explanation / Answer

This is technically incomplete answer at the moment but it might give you a clue:

AutoHotKey macros can handle EVENT_SYSTEM_MOVESIZEEND event produced by other windows after their moving/sizing finished. This should give you access to current data of the window so you can log it. More information is here. This might need more R&D to create the macro, this answer is attempt to show you a direction.

For details of AutoHotKey setup see this answer covering different scenario of AutoHotKey usage.