zoukankan      html  css  js  c++  java
  • 系统空闲时间 解决 GetLastInputInfo 负数问题

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.InteropServices;
    using System.Text;
    using System.Threading.Tasks;

    namespace ATMDefendCabinEventVideoForm
    {
    public class CheckComputerFreeState
    {

    /// <summary>
    /// 创建结构体用于返回捕获时间
    /// </summary>
    [StructLayout(LayoutKind.Sequential)]
    struct LASTINPUTINFO
    {
    /// <summary>
    /// 设置结构体块容量
    /// </summary>
    [MarshalAs(UnmanagedType.U4)]
    public int cbSize;

    /// <summary>
    /// 抓获的时间
    /// </summary>
    [MarshalAs(UnmanagedType.U4)]
    public uint dwTime;
    }

    [DllImport("user32.dll")]
    private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
    /// <summary>
    /// 获取键盘和鼠标没有操作的时间
    /// </summary>
    /// <returns>用户上次使用系统到现在的时间间隔,单位为秒</returns>
    public static long GetLastInputTime()
    {
    LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
    vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
    if (!GetLastInputInfo(ref vLastInputInfo))
    {
    return 0;
    }
    else
    {
    Console.WriteLine("TickCount=" + Environment.TickCount);
    Console.WriteLine("vLastInputInfo.dwTime=" + vLastInputInfo.dwTime);
    Console.WriteLine("vLastInputInfo.dwTime & Int32.MaxValue=" + (vLastInputInfo.dwTime & Int32.MaxValue));
    var count = Environment.TickCount & Int32.MaxValue - (long)(vLastInputInfo.dwTime & Int32.MaxValue);
    var icount = count / 1000;
    return icount;
    }
    }


    public static long GetLastInputTimeMinute()
    {
    LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
    vLastInputInfo.cbSize = Marshal.SizeOf(vLastInputInfo);
    if (!GetLastInputInfo(ref vLastInputInfo))
    {
    return 0;
    }
    else
    {
    var count = Environment.TickCount - (long)vLastInputInfo.dwTime;
    var icount = count / (1000*60);
    return icount;
    }
    }

    }
    }

  • 相关阅读:
    Android 一个TextView中设置多种不同大小的字体,设置超链接
    Android Okhttp POST提交键值对
    第九天
    第八天
    第七天
    第六天
    第三天
    day 51
    day 49
    day 48 bootstrap
  • 原文地址:https://www.cnblogs.com/bkyrslf/p/9451212.html
Copyright © 2011-2022 走看看