2008年3月3日

iTunesCmd.ahk

自分が欲しい物を作った

;iTunesCmd.ahk
;2008/03/03作成
;iTunesのちょっとした操作をコマンドラインで判別して実行

;仕様
;・「CoHelper.ahk - AutoHotkey Community」必須
;・引数がないと終了
;・/Playで曲の再生・一時停止の切り替え
;・/Stopで曲の停止
;・/Nextで次の曲
;・/Backで最初から・前の曲
;・/Prevで前の曲
;・/Lyricで歌詞表示
;・/Infoで曲の情報表示

;todo
;・トレイアイコンからの復帰・格納がうまくいかないのを直す

#NoTrayIcon
#Include CoHelper.ahk

If 0 <> 0
{
cmd = %1%
;Msgbox, %cmd%
}
else
{
ExitApp
}

CoInitialize()
iTunesApp := ActiveXObject("iTunes.Application")

If cmd = /Show
{
Windows := Invoke(iTunesApp, "Windows")
Browser := Invoke(iTunesApp, "BrowserWindow")
Invoke(Windows, "Visible=", 1)
Release(Browser)
Release(Windows)
}
else If cmd = /Hide
{
Windows := Invoke(iTunesApp, "Windows")
Browser := Invoke(iTunesApp, "BrowserWindow")
Invoke(Windows, "Visible=", 0)
Release(Browser)
Release(Windows)
}
else If cmd = /Play
{
Invoke(iTunesApp, "PlayPause")
}
else If cmd = /Stop
{
Invoke(iTunesApp, "Stop")
}
else If cmd = /Next
{
Invoke(iTunesApp, "NextTrack")
}
else If cmd = /Prev
{
Invoke(iTunesApp, "PreviousTrack")
}
else If cmd = /Back
{
Invoke(iTunesApp, "BackTrack")
}
else If cmd = /Lyric
{
Current := Invoke(iTunesApp, "CurrentTrack")
Lyric := Invoke(Current, "Lyrics")
Msgbox, %Lyric%
Release(Current)
}
else If cmd = /Info
{
;現在の曲の情報を取得する
Current := Invoke(iTunesApp, "CurrentTrack")
;名前
Name := Invoke(Current, "Name")
;アルバム
Album := Invoke(Current, "Album")
;アーティスト
Artist := Invoke(Current, "Artist")
;再生回数
Count := Invoke(Current, "PlayedCount")
;レート
Rate := Invoke(Current, "Rating")
;長さ
Time := Invoke(Current, "Time")
;曲番号
TrackNumber:= Invoke(Current, "TrackNumber")
;ジャンル
Genre := Invoke(Current, "Genre")
MsgBox, 名前:%Name%(%Time%)`nアルバム:%Album%(%TrackNumber%/)`nアーティスト:%Artist%`n再生回数:%Count%回`nレート:%Rate%`nジャンル:%Genre%`n
Release(Current)
}
Release(iTunesApp)
CoUninitialize()
return