; 用定时器代替循环的例子 By FeiYue F1:: Reload ;-- 重启 F2:: Suspend ;-- 挂起热键 $1:: ;-- 这些是原来的热键,按下执行,松开停止 $2:: $3:: $1 Up:: ;-- 增加对应的弹起热键,用于弹起时停止定时器 $2 Up:: $3 Up:: ;-- 不让一个热键在没有执行完时被其他热键中断 Critical ;-- 得到最终用于发送的按键 k:=StrReplace(Trim(A_ThisHotkey, "$"), " Up") ;-- 初始化 状态数组 和 定时器数组 if (!IsObject(keydown)) keydown:=[], timer:=[] ;-- 初始化定时器数组中按键对应的绑定函数 if (!timer[k]) keydown[k]:=0, timer[k]:=Func("aaa").Bind(k) ;-- 根据按键状态有变化才执行 if InStr(A_ThisHotkey, "Up") { if (keydown[k]=1) { ;-- 停止定时器 keydown[k]:=0, r:=timer[k] SetTimer, % r, Off } } else { if (keydown[k]=0) { ;-- 启动定时器 keydown[k]:=1, r:=timer[k] SetTimer, % r, 1 } } return aaa(k) { Send % k Sleep, 30 }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)