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);
    }
    }
    }
    }

  • 相关阅读:
    搭建家庭无线Adhoc网络
    IPv4到IPv6的过渡技术
    IPV6的安全性
    IPv6技术简要解析
    安全删除和恢复文件的脚本
    什么是 WPS(WiFi Protected Setup)
    华为:IPv6过渡技术中的探索
    IPV6地址设置及使用方法
    部分IIS日志参数名称解释
    《隐秘的角落》
  • 原文地址:https://www.cnblogs.com/luohengstudy/p/4171331.html
Copyright © 2011-2022 走看看