Вот пример, который вызывает GetLastInputInfo. Однако я не изучал этот API, чтобы узнать, действительно ли он дает вам информацию, которую вы хотите.
require "Win32API"
api = Win32API.new( 'user32', 'GetLastInputInfo', ['P'], 'I')
# match the structure LASTINPUTINFO. First 4 byte int is size of struct
s = [8, 0].pack('l*')
api.call( s )
a = s.unpack('l*')
puts a