zoukankan      html  css  js  c++  java
  • 获取系统空闲时间

    //定义结构体
    internal struct LASTINPUTINFO
    {
    public uint cbSize;
    public uint dwTime;
    }

    //引入系统API
    [DllImport("User32.dll")]
    private static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);

    /// <summary>
    /// get the system idle time
    /// </summary>
    /// <returns></returns>
    public long getIdleTick()
    {
    LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
    vLastInputInfo.cbSize = (uint)Marshal.SizeOf(vLastInputInfo);
    if (!GetLastInputInfo(ref  vLastInputInfo)) return 0;
    return (Environment.TickCount - (long)vLastInputInfo.dwTime)/1000;
    }

    应用时最好单独开启一个线程来计算  不要使用UI线程

    private bool autoClose = false;
    private bool isRun = true;
    Thread monitorSystemFree = null;

    Thread monitorSystemFree = new Thread(StartAutoClose);
    monitorSystemFree.IsBackground = true;
    monitorSystemFree.Start();

    /// <summary>
    /// auto to close window
    /// </summary>
    private void StartAutoClose()
    {
    if (AutoClose)
    {
    while (this.isRun)
    {
    //Get System run ticks
    long idleTicks = getIdleTick();
    // auto close time out : 15 s (1000 is to let the result close to 15 s)
    if (idleTicks >= 15)
    {
    this.isRun = false;

    this.Dispatcher.Invoke(new Action(() =>
    {
    this.Close();
    }), null);
    }
    }
    }
    }

  • 相关阅读:
    oracle在没
    一天中时针和分钟重合的次数
    oracle的隐藏的东东
    左右小移动
    JS全选的操作
    JS定时器
    在文件中查找字符串
    表单原件
    div和span互换
    div和span的区别
  • 原文地址:https://www.cnblogs.com/luohengstudy/p/4171331.html
Copyright © 2011-2022 走看看