You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取Windows系统的活跃运行时长(Active Uptime)

统计Windows设备实际活跃使用时长

你之前用PerformanceCounter获取的系统运行时长(Uptime)是从上次重启到现在的总时长,包含休眠、待机等非活跃状态,没法区分实际使用时间。要统计实际活跃时长,可以试试下面几种方法:

方法1:用GetLastInputInfoAPI跟踪用户输入

这个API能获取系统最后一次收到用户输入(键盘/鼠标)的时间,结合当前时间就能算出空闲时长,进而统计活跃时间。示例代码:

using System;
using System.Runtime.InteropServices;

public static class ActiveUsageTracker
{
    [StructLayout(LayoutKind.Sequential)]
    private struct LASTINPUTINFO
    {
        public uint cbSize;
        public uint dwTime;
    }

    [DllImport("user32.dll")]
    private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

    public static TimeSpan GetIdleTime()
    {
        LASTINPUTINFO lastInputInfo = new LASTINPUTINFO();
        lastInputInfo.cbSize = (uint)Marshal.SizeOf(lastInputInfo);
        GetLastInputInfo(ref lastInputInfo);
        uint idleTime = (uint)Environment.TickCount - lastInputInfo.dwTime;
        return TimeSpan.FromMilliseconds(idleTime);
    }

    // 定时调用GetIdleTime记录空闲时长,用总运行时长减去累计空闲时长得到活跃时长
    public static TimeSpan GetActiveUsageTime(TimeSpan totalUptime, TimeSpan accumulatedIdle)
    {
        return totalUptime - accumulatedIdle;
    }
}

方法2:通过Windows事件日志统计会话状态

Windows系统会记录登录、注销、休眠、唤醒等事件,你可以查询这些事件来计算活跃时间段:

  • 登录事件ID:4624(安全日志)
  • 注销事件ID:4634(安全日志)
  • 休眠事件ID:1074(系统日志,备注含"sleep")
  • 唤醒事件ID:1(系统日志,来源为Power-Troubleshooter)

解析这些事件的时间戳,累加登录到休眠/注销之间的时长,就能得到实际活跃使用时间。

方法3:使用WMI查询用户会话状态

通过WMI的Win32_Desktop类可以获取当前用户会话的创建时间,结合当前时间计算活跃时长。示例代码:

using System.Management;

public static TimeSpan GetSessionActiveTime()
{
    TimeSpan activeTime = TimeSpan.Zero;
    ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Desktop");
    foreach (ManagementObject obj in searcher.Get())
    {
        DateTime createTime = ManagementDateTimeConverter.ToDateTime(obj["CreationDate"].ToString());
        activeTime = DateTime.Now - createTime;
    }
    return activeTime;
}

注:这种方法仅统计当前会话的活跃时长,用户注销后重新登录需要重新统计。


内容的提问来源于stack exchange,提问作者Nathan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 01:43:21