zoukankan      html  css  js  c++  java
  • windows程序自动锁屏功能的实现

    这个问题来自论坛提问

    Q:当我登录进入主界面时,在规定的时间内没有做任何操作,系统就注销(就像电脑的屏保)。 

    A: 其实很简单,参考一个api函数就可以了:GetLastInputInfo,以下是参考代码

    演示程序在你10秒内没有任何鼠标键盘活动既最小化,最小化后晃动鼠标即可复原

    using  System;
    using  System.Collections.Generic;
    using  System.ComponentModel;
    using  System.Data;
    using  System.Drawing;
    using  System.Text;
    using  System.Windows.Forms;
    using  System.Runtime.InteropServices;

    namespace  WindowsApplication28
    {
        
    public   partial   class  Form1 : Form
        
    {
            [StructLayout(LayoutKind.Sequential)]
            
    public   struct  LASTINPUTINFO
            
    {
                [MarshalAs(UnmanagedType.U4)]
                
    public   int  cbSize;
                [MarshalAs(UnmanagedType.U4)]
                
    public   uint  dwTime;
            }

            [DllImport(
    " user32.dll " )]
            
    public   static   extern   bool  GetLastInputInfo( ref    LASTINPUTINFO plii);
            

            
    public   long  getIdleTick()
            
    {
                LASTINPUTINFO vLastInputInfo 
    =   new  LASTINPUTINFO();
                vLastInputInfo.cbSize 
    =  Marshal.SizeOf(vLastInputInfo);
                
    if  ( ! GetLastInputInfo( ref    vLastInputInfo))  return   0 ;
                
    return  Environment.TickCount  -  ( long )vLastInputInfo.dwTime;
            }


            
    public  Form1()
            
    {
                InitializeComponent();
            }


            
    private   void  Form1_Load( object  sender, EventArgs e)
            
    {
                
    this .timer1.Interval  =   2000 ;
                
    this .timer1.Enabled  =   true ;

            }

            
    private   void  timer1_Tick( object  sender, EventArgs e)
            
    {
                
    long  i  =  getIdleTick();
                
    this .Text  =   string .Format( " jinjazz说:您已经{0}ms没有动了 " ,i);
                
    if  (i  >   10   *   1000 )
                
    {
                    
    this .WindowState  =  FormWindowState.Minimized;
                }

                
    else
                
    {
                    
    this .WindowState  =  FormWindowState.Normal;
                }

            }

             
        }

    }
  • 相关阅读:
    IOS开发报错之Undefined symbols for architecture armv6
    企业级证书使用帮助
    使用Hybris的customer coupon进行促销活动(promotion)
    Hybris Storefront里产品图片显示不出来的分析方法
    HubSpot company数据在UI上的展示和通过API方式进行获取
    有些CRM settype用事务码COMM_ATTRSET打不开的原因
    Global variable in ABAP function group
    CRM product model的用法
    How to prove that SAP CRM WebUI is a stateful application
    CRM产品主数据在行业解决方案industry solution中的应用
  • 原文地址:https://www.cnblogs.com/cl1024cl/p/6204967.html
Copyright © 2011-2022 走看看