Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Betriebssysteme (https://www.delphipraxis.net/27-betriebssysteme/)
-   -   Filme auf dem Desktop sehen! (https://www.delphipraxis.net/77008-filme-auf-dem-desktop-sehen.html)

Goldesel 13. Sep 2006 13:36


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

franktron 13. Sep 2006 13:40

Re: Filme auf dem Desktop sehen!
 
Ich hab ein Prog für meine DVB-S Karte das kann das auch

Flare 13. Sep 2006 13:43

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

Nils_13 13. Sep 2006 13:52

Re: Filme auf dem Desktop sehen!
 
VLC Media Player ?

himitsu 13. Sep 2006 13:54

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:

Zitat von Flare
Man könntw eventuell die Videos "per Hand" auslesen und die aktuelle Bildinformation/das Bild auf den DC des Desktops kopieren.

Ja klar ...
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.

Goldesel 13. Sep 2006 14:06

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

SirThornberry 13. Sep 2006 14:16

Re: Filme auf dem Desktop sehen!
 
ist es nicht sinvoller einfach das Handle des Desktops als Videoausgabefläche beim abspielen auszugeben

Goldesel 13. Sep 2006 14:59

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...

SirThornberry 13. Sep 2006 15:03

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.

Elvis 13. Sep 2006 15:12

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.

Goldesel 13. Sep 2006 15:29

Re: Filme auf dem Desktop sehen!
 
@ SirThornberry

Also der Vorschlag gefällt mir wirklich. Nur ... wie bekomme ich den Handle vom Desktop?!?

himitsu 13. Sep 2006 17:48

Re: Filme auf dem Desktop sehen!
 
Wenn du es ganz genau haben willst ... Hier im Forum suchenGetDC(GetDesktopWindow) :angel:

Nils_13 14. Sep 2006 09:02

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 ?

dino 14. Sep 2006 15:20

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

Elvis 14. Sep 2006 15:24

Re: Filme auf dem Desktop sehen!
 
Zitat:

Zitat von dino
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

Kunststück. :roll:
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...

Goldesel 14. Sep 2006 16:45

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

Nils_13 14. Sep 2006 16:58

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.

ste_ett 14. Sep 2006 17:35

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;

LH_Freak 14. Sep 2006 17:44

Re: Filme auf dem Desktop sehen!
 
wie umständlich. Einfach DSPack installieren ^^. Da geht des ganz einfach ^^

Delphi-Quellcode:
DSVideoWindowEx21.StartDesktopPlayback;
und schon zeigt er das ganze auf dem Desktop ^^

ste_ett 14. Sep 2006 17:45

Re: Filme auf dem Desktop sehen!
 
Ich habs gepostet, weil die Frage aufkam und anscheinend noch Fragen offen waren. :)

Nils_13 14. Sep 2006 19:32

Re: Filme auf dem Desktop sehen!
 
Zitat:

Zitat von LH_Freak
wie umständlich. Einfach DSPack installieren ^^. Da geht des ganz einfach ^^

Delphi-Quellcode:
DSVideoWindowEx21.StartDesktopPlayback;
und schon zeigt er das ganze auf dem Desktop ^^

Arghs, hätte ich das früher gewusst. Ich wollte es später noch auf DSPack umsetzen, aber um mir vorerst Arbeit zu ersparen den MP benutzen.

inherited 14. Sep 2006 19:34

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