Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi auf minimieren per LOGO + M reagieren (https://www.delphipraxis.net/77187-auf-minimieren-per-logo-m-reagieren.html)

delphis spassbremse 15. Sep 2006 20:22


auf minimieren per LOGO + M reagieren
 
Hallo,

ich wolte euch mal fragen, wie das geht, das ich
mein programm daruf reagieren lassen kann, wenn
ich die logo taste und M drücke (oder auf "Desktop anzeigen" klicke).

Das Programm wird ja dann minimiert aber Lukies Code

Delphi-Quellcode:
procedure TForm1.WMSYSCOMMAND(var msg: Tmessage);
begin
  if msg.Msg = WM_SYSCOMMAND then
  begin
    case msg.WParam of
      SC_MAXIMIZE : ShowMessage('Juhu, ich werde maximiert.');
      SC_MINIMIZE : ShowMessage('Hilfe, ich werde minimiert.');
    end;
  end;
  inherited;
end;
dunzt nicht so richtig, wenn ich meine tasten drücke.

ich hab gelsesen, dass das min WM_SIZE geht, was es aber nicht tut...

dizzy 16. Sep 2006 02:15

Re: auf minimieren per LOGO + M reagieren
 
Ich meine mich erinnern zu können, dass das hier schon mal wo Thema war. Ich konnte den Thread aber irgendwie nicht auf die Schnelle finden.

Ergebnis war, wenn mich ned alles täuscht, dass bei diesem "Desktop Anzeigen" keine Messages an die Fenster verschickt werden, oder aber eine, die nicht/wenig bekannt ist/war. Folglich kann man so ohne weiteres fürchte ich nicht darauf reagieren, da Windows da offenbar von hinten durch die Brust was murkselt, aber halt nicht normal minimiert/maximiert.

delphis spassbremse 16. Sep 2006 07:41

Re: auf minimieren per LOGO + M reagieren
 
ich had da auch schon was zu gefunden, bloß ging es darum LOGO + M auzuführen und nicht abzufangen....

hat denn sonst niemand ne idee?

Cöster 16. Sep 2006 11:26

Re: auf minimieren per LOGO + M reagieren
 
Windows-Taste + M abzufangen könnte man ins OnKeyDown oder OnKeyPress machen.

Delphi-Quellcode:
if key = Ord('M') and ((GetAsyncKeyState(VK_LWIN) < 0) or (GetAsyncKeyState(VK_RWIN) < 0)) then
  ShowMessage('ich werde minimiert');
ich weiß jetzt nicht, ob die doppelte Klammer um die GetAsyncKeyState-Abfragen nötig ist. Kannst du ja mal ausprobieren.

dizzy 16. Sep 2006 11:48

Re: auf minimieren per LOGO + M reagieren
 
Das hilft dann aber leider auch nicht, wenn man die Funktion via Icon ausser Taskleiste verwendet :?

pertzschc 16. Sep 2006 11:53

Re: auf minimieren per LOGO + M reagieren
 
Hast Du die Funktion von Luckie mal in Deinem Mainform implementiert?
Kommt dort eine Aufruf an, wenn Du Logo+M drückst und Dein Programm
im IDE-Debugger läuft?

Gruß,
Christoph

delphis spassbremse 16. Sep 2006 12:25

Re: auf minimieren per LOGO + M reagieren
 
von lucky gehts im Debugger und in der normalen verwendung...

nur die funktion wird bei Windows-taste + M oder D
nicht aufgerufen...

jetzt hab ich notfalls
in der registry den wert nowinkeys gesetzt,
aber das ist auch nur ne pure notlösung...

mit hooks hab ichs auch probiert, bin nur immer beim kopilieren der tutorials gescheitert,
weil mir etliche units fehlern, die kein **** findet^^
:wall: :wall: :wall:

naja mal schauen, ob jem ne lösung hat ....

vlees91 16. Sep 2006 12:59

Re: auf minimieren per LOGO + M reagieren
 
Achtung: Win+M ist nicht "Desktop anzeigen"
denn bei mir bleibt Trillian und andere programme mit stay on top damit noch maximiert, obwohl bei "Desktop anzeigen" ALLES weg ist

jfheins 16. Sep 2006 13:21

Re: auf minimieren per LOGO + M reagieren
 
Richtig - Win+D ist imho Desktop anzeigen, und Win+M ist "alle minimieren" oder so ähnlich ... macht das bei dir nen Unterschied, Jasper?

vlees91 16. Sep 2006 14:29

Re: auf minimieren per LOGO + M reagieren
 
ja, Trillian, ein chat programm bleibt oben bei Win+M. Bei Win+D nicht
ICQ bleibt übrogens bei beiden oben


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 Uhr.
Seite 1 von 2  1 2      

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