Filme auf dem Desktop sehen!
Hallo,
hab heute von nem Kumpel gehört, dass es ein Programm geben soll, mit dem man Videodateien als Wallpaper anzeigen lassen kann. Hab ihm das nicht wirklich geglaubt, weil ich eigentlich nicht denke dass das funktioniert. Das einzige was mir dazu halt eingefallen ist, ist Active Desktop. Hat jemand von euch da Ahnung? Vielen Dank Jannik |
Re: Filme auf dem Desktop sehen!
Ich hab ein Prog für meine DVB-S Karte das kann das auch
|
Re: Filme auf dem Desktop sehen!
Man könntw eventuell die Videos "per Hand" auslesen und die aktuelle Bildinformation/das Bild auf den DC des Desktops kopieren.
Flare |
Re: Filme auf dem Desktop sehen!
VLC Media Player ?
|
Re: Filme auf dem Desktop sehen!
Notfalls könnte man sich für viele Player das auch selber bauen.
Du mußt nur die Farbe rausbekommen, auf welcher der Player aktuell sein Bild darstellt, dann ein Bild mit der Farbe erstellen, dieses als Hintergrundbild einbinden, den Player maximieren und dann minimieren. Oftmals wird dann dennoch auf alles gemalt, was die entsprechende farbe besitzt. Spontan wütrde ich denken die Programme mahen das ähnlich, also irgendwas in mit der entsprechenden Farbe in den Hintergrund (und wenn es statt des Wallpapers nur ein Fesnter mit AlwaysInBack ist :stupid: ) und dann die Wiedergabe per Overlay über den gesdamten Bildschirm. [add] Zitat:
GetDC(0) = Desktop und wer auf GetDC(0) malt, malt über alles, auch die Fenster im Vordergrund -.-'' (du müßtest dann also erstmal alle Fenster auslesen und nur dort malen, wo Keines ist. |
Re: Filme auf dem Desktop sehen!
Hallo,
also ich hab mir jetzt auf die schnelle mal folgendes ausgedacht (und es funktioniert sogar): In eine HTML- Datei wird ein Video eingebunden. Diese wird als ActiveDesktop abgespielt und es funktioniert. jetzt möchte ich allerdings noch ein Programm dazu schreiben. Also muss ich wissen, wo der ActiveDesktop festgelegt ist. Gibt es da z.B. einen Registry Pfad oder eine Delphi Funktion um den Active Desktop zu ändern? Vielen Dank |
Re: Filme auf dem Desktop sehen!
ist es nicht sinvoller einfach das Handle des Desktops als Videoausgabefläche beim abspielen auszugeben
|
Re: Filme auf dem Desktop sehen!
@ SirThornberry
Ich kann dir nicht ganz folgen. Könntest du das nochmal etwas genauer erklären? Finde ich eine interessante Theorie... |
Re: Filme auf dem Desktop sehen!
zum Beispiel bei der TMediaPlayer-Komponente gibt man ein WinControl an wo das Video ausgegeben wird. Grund ist das intern ein Handle (Fensterhandle) benötigt wird wo das Video drauf ausgegeben wird. Die Systemfunktionen zum Ausgeben des Videos benötigen also alle ein Handle wo das Video dargestellt wird. Und dort kann man natürlich auch das Handle des Desktops angeben.
|
Re: Filme auf dem Desktop sehen!
KM Player?
Erstklassiger Player, der (genug Crunching Power vorausgesetzt) DVDs mit besserem Bild abspielen kann als alle anderen, die ich bisher getestet habe. Neben 5.000 anderen Einstellungen kannst du ihn auch auf den Desktop selbst rendern lassen. |
Re: Filme auf dem Desktop sehen!
@ SirThornberry
Also der Vorschlag gefällt mir wirklich. Nur ... wie bekomme ich den Handle vom Desktop?!? |
Re: Filme auf dem Desktop sehen!
Wenn du es ganz genau haben willst ... GetDC(GetDesktopWindow) :angel:
|
Re: Filme auf dem Desktop sehen!
Nehmen wir mal als Beispiel den TMediaPlayer: Dort muss man zwar GetDc(0) zu weisen, aber das müsste man auf MediaPlayer.Display zuweisen. Wie geht das ?
|
Re: Filme auf dem Desktop sehen!
habt ihr mitgekriegt, dass wir unter KlatschundTratsch Pixel einenPixel besprochen haben, durch den man dieVideos einiger Player am Desktop sehen kann, indem man diesen Pixel gestreckt als Bildschirmhintergrund nimmt
|
Re: Filme auf dem Desktop sehen!
Zitat:
Du suchst dir die Overlayfarbe und die Farbe wird von der Graka mit einem Overlay versehen. Keine Ahnung was in K&T steht, aber das ist als wie Steinkohle... |
Re: Filme auf dem Desktop sehen!
Also mal zum aktuellen Stand der Dinge:
Ich habe mir eine Form erstellt und dort einen MediaPlayer draufgepackt. Dann wird bei OnCreate das ParentWindow der Form auf GetDesktopWindow gesetzt. Das funktioniert auch alles soweit nur wenn ich die Tastenkombination WINDOWS + D anwende, dann wird auch die Form minimiert. Wie kann ich das umgehen? Und zu dem MediaPlayer habe ich auch noch eine Frage. Ich möchte, dass das Video in demselben Fenster abgespielt wird. Muss ich dann noch eine Komponente ergänzen oder wie läuft das ab? Hab noch nie mit dieser Komponente gearbeitet und kenn mich deshalb gar nicht damit aus. Vielen Dank Jannik |
Re: Filme auf dem Desktop sehen!
Im selben Fenster ? Du wolltest es doch auf dem Desktop abspielen. Du musst Display und DisplayRect noch auf den Desktop zuweisen. Da ist es bei mir gescheitert.
|
Re: Filme auf dem Desktop sehen!
Mit GetDC(0) bekommst du den Device Contest des Desktops.
Das brauchst du, um auf dem Desktop zu zeichnen (BitBlt(), StrechBlt, TransparentBlt(), etc.) Desktop-Fenster-Handle bekommst du mit GetDesktopWindow(). Per GetWindowRect() weisst du auch wie groß der Desktop ist, wenn du ein Video skalieren möchtest. :) Ein Video auf den Desktop zu malen ist gar nicht so schwer. Mit der TMediaPlayer-Komponente kann man ein Viedo wiedergeben. Unter TMediaPlayer.Display kann man einstellen, wohin das Video ausgegeben werden soll, z.B. ein Formular, oder eine Komponenten auf einem Formular (z.B. ein Panel). Per BitBlt() zeichnet man dann das Bild der Komponente auf den Desktop. Per GetWindowDC(Panel1.Handle) holt man sich das DC für das Panel. Bsp.:
Delphi-Quellcode:
if (BitBlt(DesktopDC, 0, 0, Panel1.Width, Panel1.Height, PanelDC, 0, 0, SRCCOPY)) then
begin ... end; |
Re: Filme auf dem Desktop sehen!
wie umständlich. Einfach DSPack installieren ^^. Da geht des ganz einfach ^^
Delphi-Quellcode:
und schon zeigt er das ganze auf dem Desktop ^^
DSVideoWindowEx21.StartDesktopPlayback;
|
Re: Filme auf dem Desktop sehen!
Ich habs gepostet, weil die Frage aufkam und anscheinend noch Fragen offen waren. :)
|
Re: Filme auf dem Desktop sehen!
Zitat:
|
Re: Filme auf dem Desktop sehen!
mplayer malt auf clGreen oder clLime, eins von beidem wars^^
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:19 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