zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    vue-fullcalendar插件
    iframe 父框架调用子框架的函数
    关于调试的一点感想
    hdfs 删除和新增节点
    hadoop yarn 实战错误汇总
    Ganglia 安装 No package 'ck' found
    storm on yarn(CDH5) 部署笔记
    spark on yarn 安装笔记
    storm on yarn安装时 提交到yarn失败 failed
    yarn storm spark
  • 原文地址:https://www.cnblogs.com/chechen/p/5511572.html
Copyright © 2011-2022 走看看