Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Windows Media Player Fernsteuern (https://www.delphipraxis.net/97049-windows-media-player-fernsteuern.html)

ebber 3. Aug 2007 16:22


Windows Media Player Fernsteuern
 
Hallo

Wie kann man beim Media Player sowas machen wie so bei Winamp also z.B "Play drücken" :

Delphi-Quellcode:

SendMessage(WinampHandle,WM_COMMAND,40045,0);
Ich habe auch schon gesucht !
Das ist aber das einzigste was ich gefunden habe : http://www.delphipraxis.net/internal...=747084#747084
Aber irgendwie habe ichs nicht geschafft das einzubauen und gibts da nicht irgendwo eine etwas Längere Liste mit Befehlen ?

Eigentlich müsste das doch so ähnlich gehen ?

Delphi-Quellcode:

function GetWMPHandle: HWND;
begin
  Result := FindWindow('Windows Media Player',nil);
end;





SendMessage(GetWMPHandle,WM_Command,$00004979, 0);
Kann mir da Jemand weiterhelfen pls ?


MfG

Dunkel 3. Aug 2007 16:40

Re: Windows Media Player Fernsteuern
 
Hallo,
versuch mal WParam & LParam zu tauschen:
Delphi-Quellcode:
SendMessage(GetWMPHandle, WM_Command, 0, $00004979);
Sollte funktionieren.

ebber 3. Aug 2007 16:53

Re: Windows Media Player Fernsteuern
 
Das hatte ich schon versucht weil ich mir nicht mehr ganz sicher war wie rum. (nachgucken hätte länger gedauert :) )

MfG

EWeiss 3. Aug 2007 17:01

Re: Windows Media Player Fernsteuern
 
Zitat:

Zitat von ebber
Das hatte ich schon versucht weil ich mir nicht mehr ganz sicher war wie rum. (nachgucken hätte länger gedauert :) )

MfG

versuchs mal mit der DP suche .. Windows Media Player oder WMP
habe da schon einiges zu geschrieben.

EDIT:
Und nein geht nicht
Delphi-Quellcode:
Result := FindWindow('Windows Media Player',nil);
Wenn schon dann
Delphi-Quellcode:
Result := FindWindow('WMPlayerAPP',nil);
Du kannst da nicht irgend etwas übergeben... der ClassNamen ist vorgegeben was du versuchst zu übergeben
ist das Caption das geht hundertpro nicht!

gruss EMil

OregonGhost 3. Aug 2007 17:19

Re: Windows Media Player Fernsteuern
 
Wie wär's mit WM_APPCOMMAND mit APPCOMMAND_MEDIA_PLAY oder APPCOMMAND_MEDIA_PLAY_PAUSE als Parameter?

EWeiss 3. Aug 2007 17:23

Re: Windows Media Player Fernsteuern
 
Zitat:

Zitat von OregonGhost
Wie wär's mit WM_APPCOMMAND mit APPCOMMAND_MEDIA_PLAY oder APPCOMMAND_MEDIA_PLAY_PAUSE als Parameter?

geht genauso ;)
Nutzt aber in seinen Fall auch nix da er bei FindWindow den falschen ClassenNamen abfragt.

gruss Emil

ebber 3. Aug 2007 17:58

Re: Windows Media Player Fernsteuern
 
An dem ClassenNamen hat gehangen. Jetzt gehts. Danke.

Gibt es noch irgendwo einer Liste aller Befehle also der SendMessages für den WMP 11 ?

MfG

OregonGhost 3. Aug 2007 18:01

Re: Windows Media Player Fernsteuern
 
WM_APPCOMMAND kann man auch einfach broadcasten, oder? Dann kriegt auch jeder andere halbwegs moderne Player, der gerade aktiv ist, die Nachricht, und nicht nur WMP :)

Aber ich wollte das eigentlich einwerfen, weil WM_COMMAND der falsche Weg ist, ein Programm fernzusteuern, wenn es einen "richtigen" gibt. Jetzt mal abgesehen davon, dass es auch ein Windows Media Player SDK gibt.

EWeiss 3. Aug 2007 18:25

Re: Windows Media Player Fernsteuern
 
Zitat:

Zitat von OregonGhost
WM_APPCOMMAND kann man auch einfach broadcasten, oder? Dann kriegt auch jeder andere halbwegs moderne Player, der gerade aktiv ist, die Nachricht, und nicht nur WMP :)

Aber ich wollte das eigentlich einwerfen, weil WM_COMMAND der falsche Weg ist, ein Programm fernzusteuern, wenn es einen "richtigen" gibt. Jetzt mal abgesehen davon, dass es auch ein Windows Media Player SDK gibt.

Das ist richtig ;)
Habe ich ja auch betont .. habe nur den einwand eingebracht
das alles nicht funktioniert wenn ein falscher Classname übergeben wird.

na es geht ja nun :)

gruss Emil

ebber 3. Aug 2007 22:13

Re: Windows Media Player Fernsteuern
 
Hallo

also dass ich das richtig verstehe, diese WM_APPCOMMANDs sollte jedes Programm verstehen ?

Nach diesem SDK hatte ich auch schon gesucht ob vielleicht was interresantes drin ist, aber ich konnte es beim besten Willen nicht finden. Das einzigste was ich gefunden habe war das Windows Vista SDK, was das WMP11 SDK enthalten soll? -> XP ?
Weis jemand wo ich das finde ?

Diese Liste kann niemand Verlängern ?
Delphi-Quellcode:

WMPlayer_Play/Pause = 0x00004978;
WMPlayer_Stop = 0x00004979;
WMPlayer_VolumeUp = 0x0000497F;
WMPlayer_VolumeDown = 0x00004980;
WMPlayer_Mute = 0x00004981;
WMPlayer_Backward = 0x0000497a;
WMPlayer_Forward = 0x0000497b;
Und auch noch welche in die andere Richtung also z.B. abgespielte Zeit, Länge, Titel ?

MfG

OregonGhost 3. Aug 2007 22:17

Re: Windows Media Player Fernsteuern
 
Also, was du da hast, sind ja wieder recht spezielle Dinger. Die WM_APPCOMMAND-Nachrichten sind die, die durchs System fliegen, wenn du z.B. auf deiner Hightech-Multimedia-Tastatur die Play-Taste drückst oder ähnliches. Insofern sollten alle Programme, die sich z.B. dadurch fernsteuern lassen wollen, WM_APPCOMMAND verstehen, ja. Wobei man sie nicht nur über die Nachrichtenschleife bekommen kann, sondern auch über Hooks.

Edit:
Oh, was du da gerade mit den SDKs fragst. Das Vista-SDK kannst du auch nachwievor für die Entwicklung für XP benutzen. Früher hieß das einfach immer Windows Platform SDK, Windows XP Edition oder sowas. Jetzt steht der Windows-Name halt vorne. Denk dir nichts dabei, das ist einfach das neueste (das neueste heißt jetzt genau genommen Windows Vista SDK Update - aber es ist kein Update, sondern halt nur die aktualisierte Version^^).

EWeiss 4. Aug 2007 12:27

Re: Windows Media Player Fernsteuern
 
Zitat:

Diese Liste kann niemand Verlängern ?
Sorry!
Aber suchst du auch mal etwas selber im Net ? ;)

Wir können dir das beim besten willen nicht auch noch abnehmen.
Ich könnte dir den ganzen Quelltext zur ansteuerung von WMP hier senden ..
nur denke ich das es nichts bringt da in dem fall der Lerneffekt verloren geht.

Copy/paste hat nicht wirklich was mit Programmieren zu tun.
Das kann man in ausnahmefällen machen wenn es um Standart funktionen geht.

Ansonsten ! wie gesagt such nach WMPlayerSDK

gruss Emil

ebber 4. Aug 2007 14:57

Re: Windows Media Player Fernsteuern
 
Hallo

ja das sehe ich ein dass man mir hier nicht mein Programm schreiben kann.
Normalerweise suche ich auch immer im Internet, aber manchmal bin ich auf dem völlig falschen Pfad und finde einfach nichts.
Ich versuche mich zu besser. :)

Nachdem ich nun wusste wie das mit dem SDK ist habe ich es auch gleich runtergeladen, nur das Vista hatte mich zimlich verwirrt.

Entschuldigung.

MfG

ebber 6. Aug 2007 18:34

Re: Windows Media Player Fernsteuern
 
Hallo

nun muss ich leider nochmal Fragen. Ich habe nun das SDK und darin habe ich diesen Ordner gefunden :
Microsoft SDKs\Windows\v6.0\Samples\Multimedia\WMP_11. In diesem Ordner gibts vieles, blos was verständlich ist, nichts in Delphi. Ich hab mir die andern Sachen mal angesehen, wobei die Hälfte den im Programm eingebundenen Player behandelt und die andere mir wohl nützlich sein könnte. Aber irgenwie bin ich nicht daraus schlau geworden (ein Grund ist warscheinlich, dass ich auser einem kleinen bisschen C# nichts kann von den Sprachen) . Ich habe diese Liste gefunden, was wohl alle informationen sind die man herausbekommen kann, aber ich habe es nicht geschafft die aufzurufen :
Delphi-Quellcode:
    L"Abstract",
    L"AcquisitionTime",
    L"AlbumArtistSortOrder",
    L"AlbumID",
    L"AlbumIDAlbumArtist",
    L"AlbumTitleSortOrder",
    L"AudioBitrate",
    L"Author",

    ...
Das L hat was mit LParam zu tun ? Kann mir hier jemand helfen wie ich nu an die Informationen komme ?

MfG

EWeiss 6. Aug 2007 20:56

Re: Windows Media Player Fernsteuern
 
Zitat:

Zitat von ebber
Hallo

nun muss ich leider nochmal Fragen. Ich habe nun das SDK und darin habe ich diesen Ordner gefunden :
Microsoft SDKs\Windows\v6.0\Samples\Multimedia\WMP_11. In diesem Ordner gibts vieles, blos was verständlich ist, nichts in Delphi. Ich hab mir die andern Sachen mal angesehen, wobei die Hälfte den im Programm eingebundenen Player behandelt und die andere mir wohl nützlich sein könnte. Aber irgenwie bin ich nicht daraus schlau geworden (ein Grund ist warscheinlich, dass ich auser einem kleinen bisschen C# nichts kann von den Sprachen) . Ich habe diese Liste gefunden, was wohl alle informationen sind die man herausbekommen kann, aber ich habe es nicht geschafft die aufzurufen :
Delphi-Quellcode:
    L"Abstract",
    L"AcquisitionTime",
    L"AlbumArtistSortOrder",
    L"AlbumID",
    L"AlbumIDAlbumArtist",
    L"AlbumTitleSortOrder",
    L"AudioBitrate",
    L"Author",

    ...
Das L hat was mit LParam zu tun ? Kann mir hier jemand helfen wie ich nu an die Informationen komme ?

MfG

Um an die Informationen heranzukommen mußt du die TLB einbinden.
In dem fall kannst du aber direkt das Kontroll von Windows Mediaplayer verwenden (ActiveX)
Dein Problem dabei ist das du dann alles über WMP laufen lassen mußt.

gruss Emil

Apollonius 6. Aug 2007 21:27

Re: Windows Media Player Fernsteuern
 
Das L hat nichts mit LParam zu tun, sondern zeigt an, dass es sich um einen PChar handelt (wenn mich meine C++-Kentnisse nicht trügen).


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz