Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Form als DesktopHintergrund (https://www.delphipraxis.net/38263-form-als-desktophintergrund.html)

glkgereon 16. Jan 2005 21:22


Form als DesktopHintergrund
 
hi

kann ich eine Form als DesktopHintergrund benutzen?

also kann ich ein Formular hinter der Taskbar und hinter icons und so anordnen?

Achso:
es würde auch reichen wenn ich irgendwie ein Bitmap/Canvas oder so hätte, das ich dann immer aufn desktop male

SirThornberry 16. Jan 2005 22:03

Re: Form als DesktopHintergrund
 
den Parent des Forms einfach auf das Desktopfenster setzen.

moritz 16. Jan 2005 22:10

Re: Form als DesktopHintergrund
 
Der Desktop ist nicht mehr als ein normales Fenster

SirThornberry 16. Jan 2005 22:12

Re: Form als DesktopHintergrund
 
hinter die icons wird schwer bis unmöglich. Was eventuell gänge wäre wenn du den parent deines forms auf das desktopfenster setzt, und die listview mit den symbolen dann auf dein formular. allerdings überdecken diese dann wieder einen teil von deinem formular, bzw. alles weil das ja so groß ist wie der geammte bildschirm (also das listview mit den symbolen)

glkgereon 17. Jan 2005 16:32

Re: Form als DesktopHintergrund
 
hmm, weil ich hab da son prog gefunden was animierte desktophintergründe anzeigt...

und das wollte ich mal mit ein paar unauffälligeren motiven versuchen...

Dax 17. Jan 2005 16:38

Re: Form als DesktopHintergrund
 
Versuch' mal, den "Program Manager" (heisst echt so, ist der Icons-Teil des Desktops) in dein Formular zu binden (mit SetParent()) und dann dein Formular als Child des Desktops setzen.. Weiss nicht genau ob's geht, bin zu faul zum testen ;)

glkgereon 17. Jan 2005 16:48

Re: Form als DesktopHintergrund
 
hmm, hört sich halbwegs logisch an :gruebel: :gruebel:

wie krieg ich denn das handle vom Program Manager und den vom Desktop raus?

dizzy 17. Jan 2005 17:15

Re: Form als DesktopHintergrund
 
Das Handle vom Desktop ist imho immer 0. (Oder war's der DC der immer 0 ist? Mal testen...) Das andere weiss ich net :)

Dax 17. Jan 2005 17:18

Re: Form als DesktopHintergrund
 
Für Desktop-Handle nutzt dir MSDN-Library durchsuchenGetDesktopWindow, für den ProgMan könntest du auf FindWindow(nil, 'Program Manager') ausweichen.. Noch besser wärs, wenn du auch noch den Klassennamen hättest ;)

glkgereon 17. Jan 2005 17:54

Re: Form als DesktopHintergrund
 
also, ich hab folgendes versucht:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Desktop:=GetDesktopWindow;
  ProgramManager:=FindWindow(nil, 'Program Manager');
  TempDesktop:=Windows.GetParent(Desktop);
  TempProgramManager:=Windows.GetParent(ProgramManager);
  Windows.SetParent(Application.Handle,Desktop);
  Windows.SetParent(ProgramManager,Application.Handle);
end;
und natürlich
Delphi-Quellcode:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Windows.SetParent(Desktop,TempDesktop);
  Windows.SetParent(ProgramManager,TempProgramManager);
end;
aber das funktioniert nicht?

hab ich irgendwas vergessen?

Luckie 17. Jan 2005 17:56

Re: Form als DesktopHintergrund
 
Zitat:

Zitat von dizzy
Das Handle vom Desktop ist imho immer 0. (Oder war's der DC der immer 0 ist? Mal testen...) Das andere weiss ich net :)

Kann nicht sein. Der Desktop ist auch nur ein Listview und hat somit auch ein gültiges Handle. Beim DC ist das so:
Zitat:

If this value is NULL, GetDC retrieves the DC for the entire screen.
Aber das ist nicht der DC des Desktops, sondern des Bildschirmes.

Dani 17. Jan 2005 18:03

Re: Form als DesktopHintergrund
 
Zitat:

Zitat von Dax
Noch besser wärs, wenn du auch noch den Klassennamen hättest ;)

=> 'Progman'

Aber mit dem Standard WinApi Windows Management hast du keine Chance, dein Fenster hinter die Icons zu kriegen. Das geht nur mit Active Desktop. Aber frag mich jetzt nicht, wie :mrgreen:

dizzy 17. Jan 2005 18:06

Re: Form als DesktopHintergrund
 
Zitat:

Zitat von Luckie
Aber das ist nicht der DC des Desktops, sondern des Bildschirmes.

:coder2: Wieder was gelernt/im Hirn korrigiert. Dangö!

glkgereon 17. Jan 2005 18:08

Re: Form als DesktopHintergrund
 
Zitat:

Aber mit dem Standard WinApi Windows Management hast du keine Chance, dein Fenster hinter die Icons zu kriegen. Das geht nur mit Active Desktop.
wie geht das? :mrgreen: :mrgreen:

also ich hab grad mal im active desktop geguckt, da kann ich nut bilder und html-seiten einbinden...

kann ich einen film mit javascript oder so reinziehen?

es ginge ja auch mit nem java-applet... :gruebel: :gruebel:

dizzy 17. Jan 2005 18:24

Re: Form als DesktopHintergrund
 
Man kann doch auch ActiveX mit Delphi schreiben oder? Das dann auf eine html, und selbige auf den Desktop klatschen. Könnte ein Weg sein - gemacht habbichs auch noch nie...

dadu 17. Jan 2005 19:30

Re: Form als DesktopHintergrund
 
Hi Leute!
Ich weis ja nicht in wie weit das hilft...und ich bin zur Zeit auch nicht Zuhause somit kann ich keine Code posten:

Man macht eine Screen vom "Program Mangager" dann nochmal das ganze...nur das man zuerst die Icons ausblendet, dann hat man 2 Bilder. Diese subtrahiert man und alles, dass nicht schwarz ist sind die Icons... Danach kopierst du ein Bild deines Programmes auf den "Program Mangager" canvas...und dann noch die Icons drüber... soweit die Theorie(Bin da zur Zeit selbst dran, hab das Verfahren also noch nicht fertig)


Einziger Nachteil: Sehr hohe Prozessorauslastung!!
Mit Codeoptimierung sollte das aber in den Griff zu bekommen sein: Das Programm was du meinst ist bestimmt...komm grad nit darauf...ist aber mit den Matirx-Schriftzeichen...und das hat kaum Proz-Auslastung.


DaDu
(Keine Ahnung ob man das gebrauchen kann)

glkgereon 17. Jan 2005 19:36

Re: Form als DesktopHintergrund
 
hmm, nee, hatte nix mit matrix zu tun..

das waren so bunte kreise und so, die verschwommen muster gebildet haben...

Dax 17. Jan 2005 19:47

Re: Form als DesktopHintergrund
 
@Luckie: Eine ListView ist ein Fenster, ein FEnster hat ein Handle.. wieso sollte das nicht gehen?
[provocative]Dann wars bestimmt was anderes als der Desktop-Hintergrund :mrgreen:[/provocative]

mh166 17. Jan 2005 20:11

Re: Form als DesktopHintergrund
 
@glkeron: Natürlich kannste da ein Javascript, Javaapplet oder anderes reinfummeln. Halt alles, was du auch auf einer normalen Internetseite mit dem IE so anstellen kannst... Also wäre es auch möglich mit <object> oder <embed> (geht glaub ich beides, aber schau einfach mal nach...) ein Video oder so einzubinden. Musst dann nur noch die HTML-Setie als Hintergrund"bild" aus wählen und fertig!

mfg, mh166

Neuni 17. Jan 2005 20:23

Re: Form als DesktopHintergrund
 
Dann is aber immer dieses doofe Problem, dass die Dateinamen hinterlegt sind :-/ Das find ich immer total nervig. Kann man das nicht irgendwie verhindern?

glkgereon 18. Jan 2005 18:47

Re: Form als DesktopHintergrund
 
wie geht das denn mit dem ActiveX?

das schnall ich nicht so ganz...kann da event mal einer ein beispiel machen?

also einbinden in html und irgendwie paar ereignisse rein...buttonClick oder so...


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:24 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