;MiniPlayer.ahk
;2008/01/06作成
;iTunesのちょっとした操作+曲情報・歌詞・アートワークの表示
;仕様
;・スクリプトのあるフォルダにArtwork.(拡張子)で保存(それを読み込んでいるため)
;todo
;・曲情報と歌詞のタブで切り替え
;・効率が悪すぎると思うのでそこらへんの改善
#NoTrayIcon
#Include CoHelper.ahk
CoInitialize()
iTunesApp := ActiveXObject("iTunes.Application")
;現在の曲の情報を取得する
Current := Invoke(iTunesApp, "CurrentTrack")
;名前取得
Name := Invoke(Current, "Name")
;アルバム名取得
Album := Invoke(Current, "Album")
;アーティスト取得
Artist := Invoke(Current, "Artist")
;アートワーク情報取得
ArtWork := Invoke(Current, "Artwork")
;(複数設定できるから)アートワークの1番目を取得
Item := Invoke(ArtWork, "Item", 1)
;画像の形式取得
FormatNum := Invoke(Item, "Format")
;画像形式がjpgの時
If FormatNum = 1
{
Format = .jpg
}
;画像形式がpngの時
else If FormatNum = 2
{
Format = .png
}
;画像形式がbmpの時
else
{
Format = .bmp
}
Path = %A_ScriptDir%\Artwork%Format%
;Msgbox, %ArtWork%, %Item%, %FormatNum%, %Format%, %Path%
Invoke(Item, "SaveArtworkToFile", Path)
;イベント作成
ConnectObject(iTunesApp, "IiTunesEvents_")
;GUI作成
;前の曲
Gui, Add, Button, x6 y7 w30 h20 gBack, <<
;曲の初めから
Gui, Add, Button, x46 y7 w30 h20 gBackTrack, <
;再生・一時停止
Gui, Add, Button, x86 y7 w30 h20 gPlay, ||>
;次の曲
Gui, Add, Button, x126 y7 w30 h20 gNext, >>
;未定
Gui, Add, Button, x166 y7 w30 h20 gSongInfo, 情報
;歌詞表示
Gui, Add, Button, x206 y7 w30 h20 gLyric, 歌詞
;アートワーク表示
Gui, Add, Picture, x326 y47 w60 h60 vPicture, Artwork%Format%
;グループ化
Gui, Add, GroupBox, x6 y37 w310 h80 , 曲情報
;曲名
Gui, Add, Text, x16 y57 w290 h13 vCurrentName, 曲名:%Name%
;アルバム名
Gui, Add, Text, x16 y77 w290 h13 vCurrentAlbum, アルバム:%Album%
;アーティスト名
Gui, Add, Text, x16 y97 w290 h13 vCurrentArtist, アーティスト:%Artist%
; Generated using SmartGUI Creator 4.0
Gui, Show, , %Name%
Return
GuiClose:
;全解放
Release(Item)
Release(ArtWork)
Release(Current)
Release(iTunesApp)
CoUninitialize()
ExitApp
Back:
Invoke(iTunesApp, "BackTrack")
Return
BackTrack:
Invoke(iTunesApp, "BackTrack")
Return
Play:
Invoke(iTunesApp, "PlayPause")
Return
Next:
Invoke(iTunesApp, "NextTrack")
Return
Lyric:
iTunesApp := ActiveXObject("iTunes.Application")
;現在の曲の情報を取得する
Current := Invoke(iTunesApp, "CurrentTrack")
;歌詞取得
CurLyric := Invoke(Current, "Lyrics")
Msgbox, %CurLyric%
Return
SongInfo:
Msgbox, Hello
Return
;曲が変わった時
IiTunesEvents_OnPlayerPlayingTrackChangedEvent()
{
;Msgbox, Hello
NewArtWork()
NewSong()
Return
}
;曲が再生された時
IiTunesEvents_OnPlayerPlayEvent()
{
;Msgbox, test
NewArtWork()
NewSong()
Return
}
;曲情報更新
NewSong()
{
iTunesApp := ActiveXObject("iTunes.Application")
;現在の曲の情報を取得する
Current := Invoke(iTunesApp, "CurrentTrack")
;名前取得
Name := Invoke(Current, "Name")
;アルバム名取得
Album := Invoke(Current, "Album")
;アーティスト取得
Artist := Invoke(Current, "Artist")
;Gui再設定
GuiControl, , CurrentName, 曲名:%Name%
GuiControl, , CurrentAlbum, アルバム:%Album%
GuiControl, , CurrentArtist, アーティスト:%Artist%
Gui, Show, , %Name%
Return
}
;アートワーク再設定
NewArtWork()
{
;ファイル削除
;FileDelete, %Path%
iTunesApp := ActiveXObject("iTunes.Application")
;現在の曲の情報を取得する
Current := Invoke(iTunesApp, "CurrentTrack")
;アートワーク情報取得
ArtWork := Invoke(Current, "Artwork")
;(複数設定できるから)アートワークの1番目を取得
Item := Invoke(ArtWork, "Item", 1)
;画像の形式取得
FormatNum := Invoke(Item, "Format")
;画像形式がjpgの時
If FormatNum = 1
{
Format = .jpg
}
;画像形式がpngの時
else If FormatNum = 2
{
Format = .png
}
;画像形式がbmpの時
else
{
Format = .bmp
}
;パス作成
Path = %A_ScriptDir%\Artwork%Format%
;画像取得
Invoke(Item, "SaveArtworkToFile", Path)
GuiControl, , Picture, %Path%
Return
}
効率が悪すぎると思う検索していたら「Autohotkey for Pocket PCs (DEMO) - AutoHotKey Community」を発見した
さっそくW-ZERO3[es]にダウンロードしてみた
.ahkに関連づけてもAutoHotKeyCE6.exeと同じフォルダにあるAutoHotKey.ahkしか認識されない
とりあえずAutoHotKey.ahkに
#NoTrayIcon
Msgbox, Hello
Return
と書いたらちゃんとメッセージボックスが出てきた他の.ahkにも対応できたらかなり使えるんじゃないか?
まあ「MortScript」の方が適してるんだけど