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とかでも良さげとか。
別に何か作ろうとか言う訳ではないのですがね。なんとなく作り始めたら面白かった。