【问题标题】:Alternative to using the Sleep function?替代使用睡眠功能?
【发布时间】:2012-11-17 08:22:44
【问题描述】:

如何在不被同一脚本中的另一个热键命令激活的睡眠命令中断的情况下运行循环?我知道一个简单的解决方法是拥有 2 个 ahk 文件,但我想合并到一个脚本中。

例如我的示例代码。 wav 文件位于同一文件夹位置,因此对我有用。否则脚本将忽略 SoundPlay 命令。就像现在的代码一样,循环工作正常,但每次我运行 RandomLabel 热键(按键盘上的 s)时都会被禁用,但在 Sleep 命令到期后会再次启用。

Esc::Reload 
+1::Test()  
Test()  
{  
SoundPlay,Activated.wav  
Hotkey,~s,RandomLabel,Toggle  
loop  
{  
    PixelGetColor,color,707,721,Slow  
    if(color=0xFFFFFF)  
    {  
        SoundPlay,Pong.wav  
        loop  
        {  
            PixelGetColor,color,707,721,Slow  
            if(color=!0xFFFFFF)  
            {  
                SoundPlay,Ping.wav  
                break  
            }  
        }  
    }  
}  
}  
RandomLabel:  
Sleep,2000  
SoundBeep,750,300  
return  

编辑:代码的目标是运行不间断循环,同时在播放声音文件之前使用热键激活倒数计时器。如果可能,这一切都在 autohotkeys1 中完成。

【问题讨论】:

标签: autohotkey


【解决方案1】:

试试SetTImer

RandomLabel:  
    settimer, LabelSoundBeep, -2000
return  
LabelSoundBeep:
    SoundBeep,750,300  
return

【讨论】:

  • 太棒了。这是一个很大的进步。现在我需要弄清楚如何让 SoundBeep 不中断 SoundPlay,但现在这是一个不同的问题。在帮助文件中找不到 settimer 感觉很糟糕。
猜你喜欢
  • 2010-11-30
  • 1970-01-01
  • 1970-01-01
  • 2010-11-12
  • 2021-04-12
  • 2011-03-23
  • 1970-01-01
  • 2011-04-08
相关资源
最近更新 更多