?? int.txt
字號:
(只在一定的時候內一直掃描不就得了.比如在1S里面有幾次按按鍵.每一次做個標記.應該可以.到主程序一判斷就知道了)
另一方法:
以下代碼為按鍵服務程序
將KeyServer放在10ms的中斷中,因為用10ms作為消抖時間,也可以是別的時間
void KeyServer()
{
if(KeyUp) //確認按鍵抬起
{
if(Key)
{
KeyDown=1;
KeyUp=0;
}
else
{
KeyUp=0;
KeyDown=0;
KeyDetect=0;
if(KeyTime) //如果第二次按下小于雙擊時間間隔,則確定是一次雙擊
{
KeyTime=DbClickDelay; //重新設置連續按鍵超時時間
KeyHits++; //按鍵次數加1
}
else //否則,這是第一次擊鍵,設置雙擊時間,當雙擊超時則為單擊
{
KeyTime=DbClickDelay;
}
}
}
if(KeyDown) //確認按鍵按下
{
if(Key)
{
KeyDelay++;
KeyDelay&=0x7F; //不讓按鍵時間溢出
}
else
{
KeyUp=1;
KeyDown=0;
}
}
if(KeyTime) //如果超出雙擊間隔時間,則確定為一次單擊
{
KeyTime--;
if(!KeyTime)
{
if (KeyHits)
DbClick =1;
else
Click=1;
}
}
if(KeyDetect) //檢測到有按鍵,激活KeyDown事件
KeyDown=1;
if((!KeyDetect) && Key)
{
KeyDetect=1;
}
}
樓主拿去試試吧
如果DbClick == 1,則說明有連續多次按鍵,KeyHits中保存了連續按鍵次數
如果Click == 1,則說明是一次單擊,KeyDelay中保存了這次單擊按下的時間長度
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -