利用键盘上不使用的SCROLL健,连续按2次,第一次灯亮,第二次灯灭
头文件中
int keyType = 0; //防锁屏按健类型
QTimer *keyTimer; //防锁屏,按键定时器
实现
- 绑定信号好槽
#include <windows.h>
keyTimer = new QTimer(this);
connect(keyTimer,SIGNAL(timeout()),this,SLOT(slotKeyTimerOut()));
keyTimer->start(20000); //20秒执行一次
槽实现
///-----------------------------------------------------------------------------
/** *Brief : 防锁屏实现,连续4次触发(按下、松开、按下、松开)
*Param : 无
*Retval : 无
----------------------------------------------------------------------------- */
void StatusIcoManager::slotKeyTimerOut()
{
//利用键盘上不使用的SCROLL健,连续按2次,第一次灯亮,第二次灯灭,一次动作包括(按下和松开)
if(keyTimer->isActive())
keyTimer->stop();
if(keyType == 0)
{
//DebugLog(logger,"防锁屏按键1-按下");
keybd_event(VK_SCROLL, 0, KEYEVENTF_EXTENDEDKEY, 0);//按键按下
keyTimer->start(10);
keyType = 1;
}
else if(keyType == 1)
{
//DebugLog(logger,"防锁屏按键1-松开");
keybd_event(VK_SCROLL, 0, KEYEVENTF_KEYUP, 0);//按键松开
keyTimer->start(10);
keyType = 2;
}
else if(keyType == 2)
{
//DebugLog(logger,"防锁屏按键2-按下");
keybd_event(VK_SCROLL, 0, KEYEVENTF_EXTENDEDKEY, 0);//按键松开
keyTimer->start(10);
keyType = 3;
}
else if(keyType == 3)
{
//DebugLog(logger,"防锁屏按键2-松开");
keybd_event(VK_SCROLL, 0, KEYEVENTF_KEYUP, 0);//按键松开
keyTimer->start(20000);
keyType = 0;
}
}