按键音注册示例
; 来源:https://www.autohotkey.com/boards/viewtopic.php?f=76&t=38007
#Persistent
arr := { "~a": "C:\Windows\Media\Alarm03.wav"
, "~s": "C:\Windows\Media\Alarm04.wav"
, "~d": "C:\Windows\Media\Alarm05.wav"
, "~f": "C:\Windows\Media\Alarm06.wav" }
PlaySound.Load(arr)
return
class PlaySound {
Load(arr) {
for k, v in arr {
player := ComObjCreate("WMPlayer.OCX.7")
, playlist := player.currentPlaylist
, playlist.appendItem(player.newMedia(v))
, handler := ObjBindMethod(this, "Play", player)
Hotkey, % k, % handler, On
}
}
Play(player) {
player.controls.play
}
}
/* ; 另一版
~a:: PlaySound("C:\Windows\Media\Alarm03.wav")
~b:: PlaySound("C:\Windows\Media\Alarm04.wav")
~c:: PlaySound("C:\Windows\Media\Alarm05.wav")
~d:: PlaySound("C:\Windows\Media\Alarm06.wav")
PlaySound(filePath) {
static players := []
player := ComObjCreate("WMPlayer.OCX.7")
ComObjConnect(player, WatchStatus)
( !WatchStatus.players && WatchStatus.players := players )
Loop
i := A_Index
until !players.HasKey(i) && (players[i] := player) && player.url := filePath
}
class WatchStatus {
StatusChange(wmp) {
static Stopped := 1
if (wmp.PlayState = Stopped) {
for k, v in this.players {
if (v = wmp)
break
}
this.players.Delete(k)
}
}
}
*/
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)