Автор оригинала: Mike Driscoll.
На днях я получил запрос на создание сценария, который мог бы сказать, как долго Windows XP был простаивается и предупредить пользователя, если он был простаил в течение определенного времени. Я сделал небольшое исследование с Google и нашел пару способов достичь этого подвига. Единственный, кто мне удалось работать, был пример CTYPES, поэтому без дальнейшего ADO давайте проверим это!
Следующие CTYPES, связанный с кодом из A Форум форума Stackoverflow :
from ctypes import Structure, windll, c_uint, sizeof, byref # http://stackoverflow.com/questions/911856/detecting-idle-time-in-python class LASTINPUTINFO(Structure): _fields_ = [ ('cbSize', c_uint), ('dwTime', c_uint), ] def get_idle_duration(): lastInputInfo = LASTINPUTINFO() lastInputInfo.cbSize = sizeof(lastInputInfo) windll.user32.GetLastInputInfo(byref(lastInputInfo)) millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime return millis / 1000.0
Если вы не понимаете код выше, пожалуйста, попросите помощь в списке рассылки CTYPES. Я тоже не понимаю все это. Я получаю основной цист, но вот и все. Вот фрагмент, который я использую, чтобы сделать код выше, сделай это:
while 1: GetLastInputInfo = int(get_idle_duration()) print GetLastInputInfo if GetLastInputInfo == 480: # if GetLastInputInfo is 8 minutes, play a sound sound = r"c:\windows\media\notify.wav" winsound.PlaySound(sound, winsound.SND_FILENAME) if GetLastInputInfo == 560: # if GetLastInputInfo is 9 minutes, play a more annoying sound sound = r"c:\windows\media\ringout.wav" winsound.PlaySound(sound, winsound.SND_FILENAME) winsound.PlaySound(sound, winsound.SND_FILENAME) winsound.PlaySound(sound, winsound.SND_FILENAME) time.sleep(1)
В моем коде я проверяю, был ли машина простоя в течение 8 минут и 9 минут. В зависимости от того, как долго он простаивает, код играет определенный файл WAV с модулем WinSound Python. В нашем магазине у нас есть определенные машины зафиксируют себя, если они простаивались в течение 10 минут. Наши пользователи не любят это слишком много, поэтому они просили, чтобы мы предупреждаем их со звуком, когда машина собиралась заблокировать. Это то, что этот скрипт достигает. Надеюсь, вы можете найти лучшее использование для этого знания.