VB.net 获取系统空闲时间,系统运行时间,无操作时间
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Public Class Form2
'定义结构体
Private Structure LASTINPUTINFO
Public cbSize As Int32
Public dwTime As Int32
End Structure
'引入系统API
Private Declare Function GetLastInputInfo Lib "user32" (ByVal plii As IntPtr) As Long '重新定义为 IntPtr
'在计时器中,进行相应的计算
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'获取系统的运行时间
Dim systemUpTime As Integer = Environment.TickCount
Dim LastInputTicks As Integer = 0
Dim IdleTicks As Integer = 0
Dim LastInputInfo As New LASTINPUTINFO()
LastInputInfo.cbSize = Len(LastInputInfo)
Dim thObject2 As Runtime.InteropServices.GCHandle = Runtime.InteropServices.GCHandle.Alloc(LastInputInfo, Runtime.InteropServices.GCHandleType.Pinned)
Dim tpObject2 As IntPtr = thObject2.AddrOfPinnedObject() '取得指向结构的指针
'获取用户上次操作的时间
If GetLastInputInfo(tpObject2) Then
LastInputTicks = CInt(thObject2.Target.dwTime)
'LastInputTicks = CInt(LastInputInfo.dwTime)
'求差,就是系统空闲的时间
IdleTicks = systemUpTime - LastInputTicks
End If
lblSystemUpTime.Text = "系统运行时间:" + Convert.ToString(systemUpTime / 1000) + " 秒"
lblIdleTime.Text = "系统空闲时间:" + Convert.ToString(IdleTicks / 1000) + " 秒"
End Sub
End Class
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Public Class Form2
'定义结构体
Private Structure LASTINPUTINFO
Public cbSize As Int32
Public dwTime As Int32
End Structure
'引入系统API
Private Declare Function GetLastInputInfo Lib "user32" (ByVal plii As IntPtr) As Long '重新定义为 IntPtr
'在计时器中,进行相应的计算
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
'获取系统的运行时间
Dim systemUpTime As Integer = Environment.TickCount
Dim LastInputTicks As Integer = 0
Dim IdleTicks As Integer = 0
Dim LastInputInfo As New LASTINPUTINFO()
LastInputInfo.cbSize = Len(LastInputInfo)
Dim thObject2 As Runtime.InteropServices.GCHandle = Runtime.InteropServices.GCHandle.Alloc(LastInputInfo, Runtime.InteropServices.GCHandleType.Pinned)
Dim tpObject2 As IntPtr = thObject2.AddrOfPinnedObject() '取得指向结构的指针
'获取用户上次操作的时间
If GetLastInputInfo(tpObject2) Then
LastInputTicks = CInt(thObject2.Target.dwTime)
'LastInputTicks = CInt(LastInputInfo.dwTime)
'求差,就是系统空闲的时间
IdleTicks = systemUpTime - LastInputTicks
End If
lblSystemUpTime.Text = "系统运行时间:" + Convert.ToString(systemUpTime / 1000) + " 秒"
lblIdleTime.Text = "系统空闲时间:" + Convert.ToString(IdleTicks / 1000) + " 秒"
End Sub
End Class
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |