No Music, No Life.にGETリクエストでsubscribeするWinampのgeneral purpose plug-inを書いてみる。Winampのplug-inは初めて作ったのでかなり混乱したけど、一応動くようだ。
なんだか、使い道が限られたショボイツールばっか作ってる気がする。
まぁいいけど。
Apolloでは動かない罠。quit
のところでエラるな。Apolloのせいかプラグインのせいかわからん・・・。
てか、
function GetWinampFilename: String; var hWinamp: THandle; iPos: Integer; cFileName: Cardinal; hTemp: THandle; buf: array[0..500] of Char; cTemp: Cardinal; sFileName: String; begin Result := ''; hWinamp := FindWindow('Winamp v1.x', nil); if hWinamp <> 0 then begin iPos := SendMessage(hWinamp, WM_USER, 0, 125); cFileName := SendMessage(hWinamp, WM_USER, iPos, 211); GetWindowThreadProcessId(hWinamp, hTemp); hWinamp := OpenProcess(PROCESS_ALL_ACCESS, False, hTemp); ReadProcessMemory(hWinamp, Pointer(cFileName), @buf, 500, cTemp); CloseHandle(hWinamp); sFileName := buf; Result := sFileName; end; end;
こんなコードでWinampやApolloで再生中の曲のフルパスは取得できるということをForumで見つけたので、単体EXEとかでも良さげとか。
別に何か作ろうとか言う訳ではないのですがね。なんとなく作り始めたら面白かった。