Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Desktop Anzeigen (https://www.delphipraxis.net/15212-desktop-anzeigen.html)

gothic_mike 24. Jan 2004 09:54


Desktop Anzeigen
 
Hallo zusammen,

ich habe mal ne frage, weis zufällig jemand, wie ich die Funktion "Desktop Anzeigen"
von der datei "Desktop anzeigen.scf" oder der WinXP Taskleiste, in meinem Programm realisieren kann?
Danke schonmal...

gekmihesg 24. Jan 2004 10:07

Re: Desktop Anzeigen
 
so glaub ich:

Delphi-Quellcode:
postmessage(HWND_BROADCAST, WM_SYSCOMMAND, WM_MINIMIZE, 0);

toms 24. Jan 2004 10:12

Re: Desktop Anzeigen
 
Eher so:
Delphi-Quellcode:
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Aber Achtung: den Code nicht ausführen sonst gibt's ein Chaos!!

Pseudemys Nelsoni 24. Jan 2004 10:30

Re: Desktop Anzeigen
 
wozu gibts den code wenn er chaos macht? :gruebel:

toms 24. Jan 2004 10:33

Re: Desktop Anzeigen
 
Zitat:

wozu gibts den code wenn er chaos macht?
Gegenfrage: Hast du den Code ausprobiert?

Pseudemys Nelsoni 24. Jan 2004 10:35

Re: Desktop Anzeigen
 
nein hab ich nicht

toms 24. Jan 2004 10:36

Re: Desktop Anzeigen
 
Zitat:

PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Damit sendest du an jedes Control ein Kommando, dass es sich minimieren soll.
Also z.B auch an einen Button, TreeView usw...

Pseudemys Nelsoni 24. Jan 2004 10:42

Re: Desktop Anzeigen
 
Zitat:

Zitat von Pseudemys Nelsoni
wozu gibts den code wenn er chaos macht? :gruebel:

:P

bzw wieso postet ihr ihn

Luckie 24. Jan 2004 10:43

Re: Desktop Anzeigen
 
Um den fehlerhaften Code von gekmihesg zu korrigieren, denke ich mal.

gothic_mike 24. Jan 2004 11:08

Re: Desktop Anzeigen
 
Hallo,

Zitat:

Zitat von toms
Eher so:
Delphi-Quellcode:
PostMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Aber Achtung: den Code nicht ausführen sonst gibt's ein Chaos!!

super idee :-D
aber ich suchte eher was brauchbares...

weis denn keiner wie man diese Funktion aus der "Desktop Anzeigen.scf" selbst basteln kann,
inkl. der wiederherstellen funktion...

chris 24. Jan 2004 11:37

Re: Desktop Anzeigen
 
hi,

guck mal hier nach

gothic_mike 24. Jan 2004 11:50

Re: Desktop Anzeigen
 
Hallo,

Zitat:

Zitat von chris
hi,

guck mal hier nach

danke, das bringt mich der lösung schon etwas näher, nur bräuchte ich dazu noch ne funktion, mit der ich rausfinden kann, ob gerade alle fenster minimiert sind, um sie dann wieder anzuzeigen...

das ganze soll genauso funktionieren, wie der link "Desktop Anzeigen.scf"...

c113plpbr 24. Jan 2004 11:56

Re: Desktop Anzeigen
 
Wenn man sich mal die Datei Desktop anzeigen anschaut, kommt man auf folgendes:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

Vielleicht kommst du damit weiter

gothic_mike 24. Jan 2004 12:42

Re: Desktop Anzeigen
 
Hallo,

Zitat:

Zitat von c113plpbr
Wenn man sich mal die Datei Desktop anzeigen anschaut, kommt man auf folgendes:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop

Vielleicht kommst du damit weiter

da bin ich schon ne ganze weile am grübeln, wie mir das weiterhelfen könnte,
ich denke mal, das sich hinter ToggleDesktop ne Message verbirgt, die an die Taskbar gesendet wird,
nur welche? :gruebel:

Chewie 24. Jan 2004 12:47

Re: Desktop Anzeigen
 
Die Suche im PSDK ergibt folgendes: Das IShellDispatch4-Interface mit seiner Methode ToggleDesktop.

gekmihesg 24. Jan 2004 14:45

Re: Desktop Anzeigen
 
ich habs grad mal ausprobiert ;)
is saulustig!
sollte man irgendwo einbaun um leute zu ärgern

aber ich glaub ich muss jetzt erstmal meinen pc neu starten...

oh mein sartmenü geht nimma :)

gothic_mike 25. Jan 2004 10:35

Re: Desktop Anzeigen
 
Hallo,

Zitat:

Zitat von Chewie
Die Suche im PSDK ergibt folgendes: Das IShellDispatch4-Interface mit seiner Methode ToggleDesktop.

guter tipp, nur leider hab ich keinen plan, wie ich das hinbekommen soll, diese funktion zu nutzen... :gruebel:

Chewie 25. Jan 2004 10:49

Re: Desktop Anzeigen
 
Zitat:

Zitat von gothic_mike
guter tipp, nur leider hab ich keinen plan, wie ich das hinbekommen soll, diese funktion zu nutzen... :gruebel:

Ich leider auch nicht. :? Interfaces sind für mich bisher noch ein Buch mit sieben Siegeln.

gothic_mike 28. Jan 2004 22:57

Re: Desktop Anzeigen
 
Moin,

da anscheinend keiner eine Lösunug für das Problem hat, frage ich mal anders:

kommt man eventuell an das Contextmenü der Taskbar ran, dann könnte ich ja eventuell den Menüpunkt
"Desktop Anzeigen" / "Geöffnete Fenster anzeigen" von da aus nutzen. :gruebel:

Luckie 28. Jan 2004 23:55

Re: Desktop Anzeigen
 
Dumdidum. :mrgreen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Keybd_event(VK_LWIN, 0, 0, 0);
  Keybd_event(Byte('M'), 0, 0, 0);
  Keybd_event(Byte('M'), 0, KEYEVENTF_KEYUP, 0);
  Keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
end;

gothic_mike 29. Jan 2004 04:22

Re: Desktop Anzeigen
 
Moin,

Zitat:

Zitat von Luckie
Dumdidum. :mrgreen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Keybd_event(VK_LWIN, 0, 0, 0);
  Keybd_event(Byte('M'), 0, 0, 0);
  Keybd_event(Byte('M'), 0, KEYEVENTF_KEYUP, 0);
  Keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);
end;

Danke! :thuimb:
Das war's zwar nicht wirklich, aber ich war mal ganz mutig :-D und hab statt Win+M einfach mal Win+D probiert, und siehe da, genau das wars, was ich suchte. Hätte ich auch schon eher drauf kommen können, mal paar Tastenkombinationen zu probieren... :wall:
Was mich nun nur noch interessieren würde, ob's für das "Desktop Anzeigen" auch einen Api-aufruf gibt, aber das gehört ja nicht wirklich hier her...

:dp:

chris 4. Feb 2004 16:39

Re: Desktop Anzeigen
 
hi,

hab gerade noch etwas anderes gefunden um alle fenster zu minimieren

Delphi-Quellcode:
var
  h: HWnd;
begin
  h:=handle;
  while h > 0 do
   begin
     if isWindowVisible(h) then postmessage(h,WM_SYSCOMMAND,SC_MINIMIZE,0);
     h:=getnextwindow(h,GW_HWNDNEXT)
   end;

GeMo 17. Jan 2007 19:52

Re: Desktop Anzeigen
 
ich weiss nicht obs euch noch hilft...
aber ich hab einen weg gefunden, die die form trotz "DEKTOP anzeigen"-klick immer angezeigt wird!

Ich hab einfach einen Timer erstellt mit dem Intervall 50...
der timer is enabled und bei "OnTimer" wird einfach:
Form.FormStyle := fsStayOnTop; gesetzt!
klappt bei mir wunderbar! :D


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