簡體   English   中英

Python 獲得空閑時間

[英]Python get idle duration

我正在制作一個獲得空閑持續時間的腳本,以獲得最后一個鼠標/kayboard 輸入時間,並且在 windows 中它工作但我無法讓它在 linux 上運行

class LASTINPUTINFO(Structure):
    _fields_ = [
        ('cbSize', c_uint),
        ('dwTime', c_uint),
    ]

def get_idle_duration():
    # get idle time
    lastInputInfo = LASTINPUTINFO()
    lastInputInfo.cbSize = sizeof(lastInputInfo)
    windll.user32.GetLastInputInfo(byref(lastInputInfo))
    millis = windll.kernel32.GetTickCount() - lastInputInfo.dwTime
    return millis / 1000.0

print(get_idle_duration())

有人可以幫我讓這段代碼在 linux 和 windows 中運行嗎?

你可以參考Gajimidle.py

只需調用getIdleSec()即可獲得以秒為單位的空閑時間。

如果執行idle.py ,它將等待 2.1 秒,然后打印空閑時間。 稍后它會釋放保存的數據,之后如果您調用 function,它將返回零。

問題中給出的代碼的問題在於它使用了特定於windll的 windll。

如果您想以更詳細的方式查看運行中的腳本,可以按如下方式更改main

if __name__ == '__main__':
    import time
    for i in range(0,10):
        print(getIdleSec())
    close()

這適用於 Ubuntu 並且應該適用於所有基於 Debian 的操作系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM