gpt4 book ai didi

c# - 检测用户空闲(每个应用程序实例)

转载 作者:太空狗 更新时间:2023-10-29 22:24:25 24 4
gpt4 key购买 nike

我只需要在我的应用程序中检测用户空闲(根据“我的应用程序实例”)。
我不能使用 GetLastInputInfo 因为 特定于 session 的用户输入:

GetLastInputInfo does not provide system-wide user input information across all running sessions. Rather, GetLastInputInfo provides session-specific user input information for only the session that invoked the function.

有什么建议吗?

最佳答案

我假设您想要检测空闲时间,但仅当您的应用程序处于事件状态时。然后,您必须准确定义您的应用程序处于事件状态的含义。当您的应用程序处于事件状态(根据您自己的定义)时,您可以定期调用 GetLastInputInfo确定应用程序处于事件状态时的空闲时间(例如,使用某种计时器)。

Windows 有一个前景窗口的概念,可以使用GetForegroundWindow 检索当前的前景窗口。 .您可以使用 GetWindowThreadProcessId查找拥有前台窗口的进程的进程 ID。如果该进程 ID 是您的进程 ID,即使您的应用程序有多个窗口,您也知道您是前台进程。您必须定期进行此检测,就像您必须检查空闲时间一样。

您不必担心 GetLastInputInfo 仅提供有关 session 的信息。如果多个用户登录到同一台 Windows 计算机,他们每个人都有自己的 session ,但另一个用户在 session 中空闲或不空闲不应影响您检测应用程序用户是否空闲的方式。

关于c# - 检测用户空闲(每个应用程序实例),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5004614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com