zoukankan      html  css  js  c++  java
  • Winform 空闲时间(鼠标键盘无操作)

    前言

    Winform 在特定情况下,需要判断软件空闲时间(鼠标键盘无操作),然后在做一下一些操作。

    实现

    做了一个简单的例子,新建一个窗体,然后拖两个控件(Timer控件和label控件)

    using System;
    using System.Runtime.InteropServices;
    using System.Windows.Forms;
    
    namespace LastInPut
    {
        public partial class FrmLastInfo : Form
        {
            [StructLayout(LayoutKind.Sequential)]
            struct LASTINPUTINFO
            {
                [MarshalAs(UnmanagedType.U4)]
                public int Size;
                [MarshalAs(UnmanagedType.U4)]
                public uint Time;
            }
            [DllImport("user32.dll")]
            static extern bool GetLastInputInfo(ref LASTINPUTINFO plii);
            static long GetLastInputTime()
            {
                LASTINPUTINFO vLastInputInfo = new LASTINPUTINFO();
                vLastInputInfo.Size = Marshal.SizeOf(vLastInputInfo);
                if (!GetLastInputInfo(ref vLastInputInfo)) return 0;
                return Environment.TickCount - (long)vLastInputInfo.Time;
            }
    
            public FrmLastInfo()
            {
                InitializeComponent();
            }
            //{GetLastInputTime()/1000}为系统空闲时间,
            private void tmrLastInfo_Tick(object sender, EventArgs e)
            {
                label1.Text = $"空闲时间{GetLastInputTime()/1000}秒";
            }
        }
    }
    
    

    效果图

  • 相关阅读:
    android_自定义布局
    二叉树_学习笔记
    栈的应用-四则表达式(C#代码实现)
    Android Fragment 生命周期
    Android Fragment之间传值
    Android ArrayAdpater 填充集合
    任务和返回栈
    XML Drawable与9-Patches
    《python语言程序设计》_第一章编程题
    CSS-文本超出部分省略号
  • 原文地址:https://www.cnblogs.com/gurenyumao/p/14297880.html
Copyright © 2011-2022 走看看