定时器+信号量
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击及其它。