我有一个Ruby脚本。我想知道系统空闲了多长时间(即没有用户交互-屏幕保护程序激活所基于的时间)。
我相信我可以通过win32api在Ruby中使用user32.dll和GetLastInputInfo来实现这一点,但我无法弄清楚如何操作...有人能帮帮我吗?
.
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
看起来你想做的事情在Linux上已经完成了:
http://coderrr.wordpress.com/2008/04/20/getting-idle-time-in-unix/
但是对于Windows,我能找到的最接近的东西是针对C#的...我没有Windows机器来进行测试,但它可能会给你一个关于如何与GetLastInputInfo交互的指示:
http://dataerror.blogspot.com/2005/02/detect-windows-idle-time.html