# 自动化 Winamp

这个章节演示了即使 Winamp 处于最小化或不活动状态时如何通过热键控制它. 这些代码已经在 Winamp 2.78c 上测试成功, 在其他主要版本应该也能良好运行. 请提交改进改进方法到论坛或联系作者.

这个例子设置 `Ctrl`+`Alt`+`P` 热键为按下 Winamp 的暂停/取消暂停按钮:

    ^!p::
    {
        if not WinExist("ahk_class Winamp v1.x")
            return
    ; 否则, 上面设置了下面要使用的 "上次找到的" 窗口.
    ControlSend "c"  ; 暂停/取消暂停
    }

这里是 Winamp 2.x (在其他版本中可能也有效) 中的一些快捷键. 上面的例子可以改用这些按键:

要发送的键 | 效果
--- | ---
`c` | 暂停/取消暂停
`x` | 播放/重放/取消暂停
`v` | 停止
`+v` | 渐隐停止
`^v` | 当前音轨结束后停止
`b` | 下一首
`z` | 上一首
`{left}` | 后退 5 秒
`{right}` | 前进 5 秒
`{up}` | 增大音量
`{down}` | 减小音量

下面这个例子获取 Winamp 中当前活动的音轨号:

    TrackNumber := SendMessage(0x0400, 0, 120,, "ahk_class Winamp v1.x")
    if (TrackNumber != "")
    {
        TrackNumber += 1  ; Winamp 的计数从 0 开始, 所以加 1 进行调整.
        MsgBox "Track #" TrackNumber " is active or playing."
    }

dftg