[英]Detecting idle users in Winforms
如果用戶閑置 5 分鍾,我想暫停我的程序。 不活動我的意思是在那段時間里沒有按下他們的鼠標或鍵盤(也包括在程序之外。)? 有什么出發點嗎?
在計時器內,您可以 p/調用GetLastInputInfo()
,它將返回自檢測到用戶輸入以來的毫秒數,跨越當前 session 中的所有進程。
這個問題與一個老問題非常相似:
其中引用了一篇描述 C# 中一些不同選項的好文章:
http://www.codeproject.com/KB/cs/uim.aspx
如果您不介意使用 P/Invoke 並且僅限於在 windows 系統上運行,那么使用 P/Invoke 調用 GetLastInputInfo() 可能是完成您想要的最簡單的方法。
您可以覆蓋 WndProc 並查找 WM_IDLE 消息
不久前我使用了GMA.UserActivityMonitor庫來實現這一點。
看起來我找到了解決您的問題的方法,請查看:
如何檢測 Winforms 應用程序已空閑一段時間和user34660回答,
對於您的應用,必須更改:
const int MinuteMicroseconds = 60000;
至
const int MinuteMicroseconds = 300000;
這只是時間,但以毫秒為單位。
適用於我的 Windows Forms 應用程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.