Как получить Windows OS системы простой с помощью Ruby? - PullRequest
3 голосов
/ 26 января 2010

У меня есть скрипт ruby. Я хочу знать, как долго система простаивала (то есть не взаимодействует с пользователем - на этом основана активация заставки времени).

Полагаю, я могу сделать это в ruby ​​через win32api, используя user32.dll и GetLastInputInfo, но я не могу понять, как ... кто-нибудь может мне помочь?

.

Ответы [ 3 ]

3 голосов
/ 29 января 2010

Вот пример, который вызывает 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
0 голосов
/ 23 апреля 2014

На основе ответа Марка Уилкинса я создал скрипт для регистрации простоя пользователя.

https://gist.github.com/Largo/11216868

0 голосов
/ 29 января 2010

Казалось бы, то, что вы хотите сделать, было сделано для Linux:

http://coderrr.wordpress.com/2008/04/20/getting-idle-time-in-unix/

Но что касается окон, то самое близкое, что я могу найти, - это C # ... У меня нет машины с Windows, которую можно взломать, но она может дать вам представление о том, как можно взаимодействовать с GetLastInputInfo:

http://dataerror.blogspot.com/2005/02/detect-windows-idle-time.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...