1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86:
| function GetWinampNextTitel:string; var hwndWinamp, TempHandle : THandle; dat2: array[0..500] of Char; TrackPos,maxpos: Integer; temp, MPointer: Cardinal; begin hwndWinamp:= FindWindow('Winamp v1.x',nil); if hwndWinamp= 0 then begin result:='' end else begin if SendMessage(hwndWinamp,WM_USER,0 , IPC_GET_SHUFFLE)=1 then result:='N/A [random]' else begin TrackPos := SendMessage(hwndWinamp,WM_USER,0 , IPC_GETLISTPOS); maxpos := SendMessage(hwndWinamp,WM_USER,0 , IPC_GETLISTLENGTH); if maxpos-1 > Trackpos then inc(TrackPos) else begin if SendMessage(hwndWinamp,WM_USER,0 , IPC_GET_REPEAT)=1 then TrackPos:=0 else begin result:='N/A [no repeat]'; exit; end; end; MPointer:= SendMessage(hwndWinamp,WM_USER,TrackPos , IPC_GETPLAYLISTTITLE); GetWindowThreadProcessId(hwndWinamp,TempHandle); hwndWinamp:= OpenProcess(PROCESS_ALL_ACCESS,False,TempHandle); ReadProcessMemory(hwndWinamp, Pointer(MPointer), @dat2,500,temp); CloseHandle(hwndWinamp); if fileexists(GetWinampFilename(Trackpos)) then Result := string(dat2) else Result := 'N/A [File not found]'; end; end; end;
function GetWinampPrevTitel:string; var hwndWinamp, TempHandle : THandle; dat2: array[0..500] of Char; TrackPos,maxpos: Integer; temp, MPointer: Cardinal; begin hwndWinamp:= FindWindow('Winamp v1.x',nil); if hwndWinamp= 0 then begin result:='' end else begin if SendMessage(hwndWinamp,WM_USER,0 , IPC_GET_SHUFFLE)=1 then result:='N/A [random]' else begin TrackPos := SendMessage(hwndWinamp,WM_USER,0 , IPC_GETLISTPOS); maxpos := SendMessage(hwndWinamp,WM_USER,0 , IPC_GETLISTLENGTH); if Trackpos > 0 then dec(TrackPos) else begin if SendMessage(hwndWinamp,WM_USER,0 , IPC_GET_REPEAT)=1 then TrackPos:=maxpos-1 else begin result:='N/A [no repeat]'; exit; end; end; MPointer:= SendMessage(hwndWinamp,WM_USER,TrackPos , IPC_GETPLAYLISTTITLE); GetWindowThreadProcessId(hwndWinamp,TempHandle); hwndWinamp:= OpenProcess(PROCESS_ALL_ACCESS,False,TempHandle); ReadProcessMemory(hwndWinamp, Pointer(MPointer), @dat2,500,temp); CloseHandle(hwndWinamp); if fileexists(GetWinampFilename(Trackpos)) then Result := string(dat2) else Result := 'N/A [File not found]'; end; end; end; |