我有一个ruby脚本。我想知道系统闲置了多长时间(即没有用户交互 - 屏幕保护程序激活的时间基于)。
我相信我可以通过win32api使用user32.dll和GetLastInputInfo在ruby中执行此操作,但我无法弄清楚如何...任何人都可以帮助我吗?
答案 0 :(得分:3)
以下是调用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
答案 1 :(得分:0)
看起来你想要做的事情已经为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
答案 2 :(得分:0)
根据Mark Wilkins的回答,我创建了一些脚本来记录用户的空闲时间。