![]() |
Track aus Itunes auslesen
heyho,
Ich such für mein Projekt die Möglichkeit den aktuellen ITunes Song auszulesen! Auf der Suche nach einer Möglichkeit bin ich auf den Thread hier gestoßen: ![]() allerdings ist der thread a) schon etwas älter und b) bringt mich zu einer ganz anderen frage. Nämlich woher bekomm ich die nötigen .pas Files die da eingebunden werden? Hab mal bisschen im google gesucht, bin aber nicht weiter fündig geworden! wäre toll wenn mir da jemand helfen könnte! Das SDK-Kit scheints ja nicht zu sein, was es auf der Homepage zum download gibt oder? danke schonmal für Hilfe :) |
Re: Track aus Itunes auslesen
|
Re: Track aus Itunes auslesen
herzlichen dank :)
für alle die das auch mal schnell brauchen :)
Delphi-Quellcode:
function ItunesSong(): string;
var iTunesApp: OLEVariant; begin // iTunes Objekt erzeugen iTunesApp := CreateOleObject('iTunes.Application'); if not VarIsNull(iTunesApp) then begin result := iTunesApp.CurrentTrack.Artist +' - '+ iTunesApp.CurrentTrack.Name; if not VarIsNull(iTunesApp) then iTunesApp := Unassigned; end; end; |
Re: Track aus Itunes auslesen
argh, ein problem:
wenn itunes zu ist und ich das ganze start, wird itunes geöffnet, wie kann ich das noch umgehen? über die api geht das ja schlecht, denn die is ja nur da, wenn itunes gestartet hast. wie prüf ich das aber vorher? kennt jemand den handle namen von Itunes? |
Re: Track aus Itunes auslesen
Benutze doch WinSpy das gibt es hier in der DP
|
Re: Track aus Itunes auslesen
danke für den tipp! da schau ich gleich mal nach :)
edit: das programm is ja genial! danke dafür!!! |
Re: Track aus Itunes auslesen
hier nochmal die überarbeitete (wenn auch bestimmt nicht eleganteste lösung - aber besser kann ichs nicht ;) )
Delphi-Quellcode:
function ItunesSong(): string;
var iTunesApp: OLEVariant; begin result := 'iTunes closed'; if FindWindow('iTunes', nil) <> 0 then begin try //Itunes rennt? iTunesApp := CreateOleObject('iTunes.Application'); // iTunes Objekt erzeugen if not VarIsNull(iTunesApp) then begin result := iTunesApp.CurrentTrack.Artist +' - '+ iTunesApp.CurrentTrack.Name; if not VarIsNull(iTunesApp) then iTunesApp := Unassigned; end; except //tritt immer auf, wenn itnues zwar gestartet ist, aber nix wiedergibt! result := 'Itunes - Stopped'; end; end; end; |
Re: Track aus Itunes auslesen
Prüf doch vor dem Zugriff, ob "iTunesApp.CurrentTrack" existiert, dann brauchste auch keinen except-Block. :)
- edit - Ungetestet, da ich hier kein ITunes habe. :)
Delphi-Quellcode:
function GetCurrentITunesSong(): String;
var iTunesApp, iTunesCurrentTrack: OleVariant; begin Result := 'iTunes closed'; if (FindWindow('iTunes', nil) <> 0) then begin iTunesApp := CreateOleObject('iTunes.Application'); // iTunes Objekt erzeugen if (not VarIsNull(iTunesApp)) then begin iTunesCurrentTrack := iTunesApp.CurrentTrack; if (not VarIsNull(iTunesCurrentTrack)) then begin Result := iTunesApp.CurrentTrack.Artist +' - '+ iTunesApp.CurrentTrack.Name; iTunesCurrentTrack := Unassigned; end; iTunesApp := Unassigned; end; end; end; |
Re: Track aus Itunes auslesen
[DCC Error] uMain.pas(52): E2003 Undeclared identifier: 'CreateOLEObject'
Delphi-Quellcode:
Original Code, implementiert. Einziger Fehler: OLEObject kann nicht erzeugt werden. Warum?
function GetCurrentITunesSong(): String;
var iTunesApp, iTunesCurrentTrack: OLEVariant; begin Result := 'iTunes closed'; if (FindWindow('iTunes', nil) <> 0) then begin iTunesApp := CreateOLEObject('iTunes.Application'); // iTunes Objekt erzeugen if (not VarIsNull(iTunesApp)) then begin iTunesCurrentTrack := iTunesApp.CurrentTrack; if (not VarIsNull(iTunesCurrentTrack)) then begin Result := iTunesApp.CurrentTrack.Artist +' - '+ iTunesApp.CurrentTrack.Name; iTunesCurrentTrack := Unassigned; end; iTunesApp := Unassigned; end; end; end; Meine Lösung: Nat. sollte man ComObj implementieren und desweiteren mit Delphi 2007 auch Variants als VarTyp verwenden. |
Re: Track aus Itunes auslesen
Dennoch: Es funktioniert mit der neuesten Version von iTunes, WinXP SP2 und diesem Code nicht!
Ich nochmal: Edit! Also, solange iTunes laeuft aber kein Lied spielt gibt es eine Zugriffsverletzung. Das muesste man noch abfangen. Gruß Arne |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz