C#语言如何获取系统空闲时间
时间: 2024-01-02 14:03:45 浏览: 49
在C#中,可以使用System.Windows.Forms命名空间中的Application.Idle事件来获取系统的空闲时间。
首先,需要在代码文件中添加以下命名空间:
```csharp
using System.Windows.Forms;
```
然后,可以使用以下代码来订阅Application.Idle事件并获取系统空闲时间:
```csharp
DateTime lastInputTime = DateTime.Now;
Application.Idle += (sender, e) =>
{
int systemIdleTime = (int)Win32.GetLastInputTime();
if (systemIdleTime >= lastInputTime)
{
lastInputTime = systemIdleTime;
TimeSpan idleTime = TimeSpan.FromMilliseconds(System.Environment.TickCount - systemIdleTime);
Console.WriteLine("System has been idle for " + idleTime.TotalSeconds + " seconds");
}
};
```
其中,Win32.GetLastInputTime()方法是一个Win32 API函数,用于获取系统最后一次输入的时间。使用TimeSpan.FromMilliseconds()方法将空闲时间转换为TimeSpan类型,以便进行格式化或计算。最后,输出空闲时间的总秒数到控制台窗口中。