WindowsでPythonを使用してシステムがアイドル状態になっているかどうかを検出するにはどうすればよいですか? これは既にbeforeと尋ねられていますが、モジュールにはGetLastInputInfo
と思われません。Pythonを使用してアイドル時間を検出する
16
A
答えて
2
実は、あなたはcytpes
ライブラリ経由GetLastInputInfo
にアクセスすることができます。それは、システム全体にわたるが、唯一と呼ばれるセッションについてのアイドル情報を提供しないよう
import ctypes
GetLastInputInfo = ctypes.windll.User32.GetLastInputInfo # callable function pointer
これは、あなたがが望むものではないかもしれません関数。 See MSDN docs.
また、check if the system is locked、またはスクリーンセーバーが開始されている場合もあります。
18
from ctypes import Structure, windll, c_uint, sizeof, byref
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
アイドル時間を秒単位で取得するには、get_idle_duration()
を呼び出します。
6
はGetLastInputInfo
はpywin32で利用可能になりましたように思える:
win32api.GetLastInputInfo()
は、トリックを行い、最後のユーザ入力アクションからタイマーティックを返します。
プログラム例import time
import win32api
for i in range(10):
print(win32api.GetLastInputInfo())
time.sleep(1)
でその他
一方がキーを押した場合、スクリプトは、印刷された番号の変更を眠っている間/マウスを移動させます。
1
@ FogleBirdの回答はかなりクールで働いていますが、急いで私はそれがどのように動作するか分からなかったので、ここでは少しのテスト例です。スレッドが開始され、最後のアイドル時間が10秒ごとに検索されます。この時間内に移動が行われた場合は、それが印刷されます。
from ctypes import Structure, windll, c_uint, sizeof, byref
import threading
//Print out every n seconds the idle time, when moving mouse, this should be < 10
def printit():
threading.Timer(10.0, printit).start()
print get_idle_duration()
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
printit()
3
import win32api
def getIdleTime():
return (win32api.GetTickCount() - win32api.GetLastInputInfo())/1000.0
関連する問題
- 1. VBアイドル時間を検出する
- 2. タブ間でもアイドル時間を検出できますか?
- 3. DispatcherTimerを使用したアイドル時間 - 動作しません。
- 4. レッグシステムのアイドル時間
- 5. ユーザのアイドル時間をモニタする
- 6. アイドル時間の後にマウスカーソルを隠す
- 7. Linuxのプロセスのアイドル時間
- 8. MediaWIkiセッションのアイドル時間
- 9. Winformsアプリケーションを検出する方法は一定の時間アイドル状態になっています
- 10. Pythonを使用してHTMLページでJavaScriptを検出する
- 11. Pythonを使用してWindowsでマウスのクリックを検出する
- 12. DropboxのPython APIを使用して変更を検出する
- 13. Linux上でユーザーがアイドル(ユーザー入力なし)の時間をグローバルに検出するか、より良いクロスプラットフォーム
- 14. Windows phone 7 Appアイドル検出
- 15. Pythonを使用した異常検出
- 16. VBScriptを使用してミリ秒で時間を検索
- 17. yesodはアイドル時にプロセッサを使用しますか?
- 18. 制御アイドル時間外部ページ
- 19. すべてのワークフローシーケンスがアイドル状態であることを検出します。
- 20. 時間をプロットする方法は、Pythonを使用して値のグラフ
- 21. Webアプリケーションはユーザーのアイドル時間をどのように検出できますか?
- 22. CoreBluetooth広告検出時間
- 23. Joda時間を使用して日時を解析するパターン
- 24. 最後にキーが押されてからの非アクティブ/アイドル時間の検出方法
- 25. アプリケーション入力アイドル時間を取得する
- 26. 私のiPhone App内でアイドル時間を実装する
- 27. Whooshでの即時検索 - Whooshを使用してMySQLテーブルを検索して検索するWhooshを使用してJSON結果を出力する
- 28. Pythonを使用してWebページ上の動的時間カウンタを抽出する方法
- 29. Objective-C/Cを使用してDST(夏時間)タイムスタンプを検索しますか?
- 30. Powershellを使用してミリ秒単位で時間を検索しますか?
それはなぜあなたが再び求めている、前に頼まれたので?あなたは何が変わって別の答えが出ると思いますか? –
多分、誰かがそれに答えることができる人がいますが、古い質問は年齢と曖昧さに埋もれています。誰かの古い質問にどうやって "バンプ"することができますか? –
以前に尋ねられたとき、その答えはマウスクリックの検出に関するものでしたが、それはその質問に対する答えの近くにありませんでした! – Badri