定時器+信號量
XXX up::
{
if ( XXX_flag ) {
...
return
}
XXX_flag :=True
...
SetTimer, XXX_time, -time
return
}
XXX_time:
{
...
XXX_flag :=False
return
}
異步檢測 InputHook 或者 異步通知
異步通知
~XXX::
{
if ( XXX_msg ) {
...
return
}
SetTimer, XXX_time, -time
XXX_msg :=True
...
return
}
~XXX up::
{
...
if( !XXX_msg )
{ }
}
XXX_time:
{
... ; chck msg
}
狀態機套娃。
MButton::return
MButton up::
{
if( !MButton_flag ) {
..
MButton_flag :=True
return
}
...
MButton :=False
return
}
一個硬件標志位配合時間信息可以跳轉執行的多個服務數
狀態機+異步信號,
子狀態接收異步信號跳往對應下一態
定時器檢測硬件標志,配合狀態機1跳轉相應狀態,單擊、雙擊、多次擊鍵。
定義:單擊按鍵,雙擊按鍵,3擊及其它。