#! perl -slw use strict; use Win32::API::Prototype; ApiLink( 'user32.dll', 'bool GetLastInputInfo( pvoid p )' ) or die $^E; my $info = pack 'VV', 8, 0; while( sleep 1 ) { GetLastInputInfo( $info ) or die $^E; printf "Last input was at: %u\n", unpack 'x[V] V', $info; } __END__ c:\test>junk Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850068125 Last input was at: 850073953 Last input was at: 850073953 Last input was at: 850073953 Last input was at: 850073953 Last input was at: 850077828 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850078250 Last input was at: 850086593 Last input was at: 850086593 Last input was at: 850086593 Last input was at: 850086593 Last input was at: 850090578 Last input was at: 850092078 Last input was at: 850092703 Terminating on signal SIGINT(2)