簡體   English   中英

檢測 Winforms 中的空閑用戶

[英]Detecting idle users in Winforms

如果用戶閑置 5 分鍾,我想暫停我的程序。 不活動我的意思是在那段時間里沒有按下他們的鼠標或鍵盤(也包括在程序之外。)? 有什么出發點嗎?

在計時器內,您可以 p/調用GetLastInputInfo() ,它將返回自檢測到用戶輸入以來的毫秒數,跨越當前 session 中的所有進程。

這個問題與一個老問題非常相似:

.NET 等效於 GetLastInputInfo?

其中引用了一篇描述 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.

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