• GetLastInputInfo计时用户离开电脑及软件在指定时间锁定等(转)


     1 /************************************************************************/
     2 /* 说明:
     3 调用函数GetLastInputInfo()以后, 结构成员lpi.dwTime 中的值并非上次输入事件
     4 发生以后的毫秒数。而是上次输入事件发生时的系统运行时间。相当于上次输入事件
     5 发生时执行了lpi.dwTime=::GetTickCount()。
     6 ::GetTickCount()-lpi.dwTime才是上次输入事件发生以后的毫秒数。
     7 */
     8 /************************************************************************/
     9 //注意:windows2000以上系统才支持函数GetLastInputInfo()因此有可能需要在StdAfx.h中加上如下语句:
    10 #define _WIN32_WINNT 0x0500
    11 //或者:
    12 #ifdef _WIN32_WINNT 
    13 #undef _WIN32_WINNT 
    14 #endif 
    15 #define _WIN32_WINNT 0x0500 
    16 
    17 //首先定义一个计时器计时事件的定义
    18 #define  GETLASTINPUTINFO  109
    19 
    20 //然后写一个Time计时器(具体计时器的生成步骤就不在叙述)
    21 
    22 //1、在程序初始化的时候调用
    23 m_uGetLastInputInfo = SetTimer(GETLASTINPUTINFO, 500, NULL);//设置获取键盘和鼠标处于空闲状态的时间的计时器
    24 
    25 
    26 //2、处理函数
    27 void CNetAppSoftDlg::OnTimer(UINT nIDEvent)
    28 {
    29     LASTINPUTINFO lpi;
    30     DWORD dwTime = 0;
    31 
    32     switch(nIDEvent)
    33     {
    34     case GETLASTINPUTINFO://zhouzx 获取键盘和鼠标处于空闲状态的时间
    35 
    36         lpi.cbSize = sizeof(lpi);
    37         GetLastInputInfo(&lpi);//关于此windows API接口的介绍,参见同文件夹下的文档
    38         dwTime = ::GetTickCount()-lpi.dwTime;
    39 
    40         if (dwTime >= 30000)//30秒
    41         {
    42             if (m_uGetLastInputInfo)
    43             {
    44                 KillTimer(GETLASTINPUTINFO);
    45             }
    46             OnBnClickedButtonLock();
    47         }
    48         break;
    49     default:
    50         break;
    51     }
    52     CDialog::OnTimer(nIDEvent);
    53 }
    54 
    55 //3、在软件解锁后的地方重新开始新的计时
    56 m_uGetLastInputInfo = SetTimer(GETLASTINPUTINFO, 500, NULL);
    57 
    58 //4、在推出软件的时候,如果计时器没有停止,要关闭计时器
    59 if (m_uGetLastInputInfo)
    60 {
    61     //结束获取键盘和鼠标处于空闲状态的时间定时器
    62     KillTimer(GETLASTINPUTINFO);
    63 }

    转载:http://www.cnblogs.com/ziwuge/archive/2011/12/22/2296559.html

    转载:http://blog.csdn.net/yockie/article/details/7770599

  • 相关阅读:
    Android getResources的作用和需要注意点
    Android 中的Affinity
    关于Android下各个布局方式里面LayoutParams的用法
    kaifa xin
    imageVIew
    实验三 区域四连通填充算法
    实验四 二维几何变换
    OpenGL开发库的详细介绍zz
    附加实验2 OpenGL变换综合练习
    实验3 OpenGL几何变换
  • 原文地址:https://www.cnblogs.com/chechen/p/5511572.html
Copyright © 2020-2023  润新知