Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Minimieren verhindern bei [Win]+[D] und [Win]+[M] (https://www.delphipraxis.net/31380-minimieren-verhindern-bei-%5Bwin%5D-%5Bd%5D-und-%5Bwin%5D-%5Bm%5D.html)

Ganymed 8. Okt 2004 11:18


Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Hi!

Diese Frage wurde schon öfters hier gestellt, aber noch nie beantwortet. Vielleicht gibt es ja inzwischen neue Erkenntnisse:

Wie verhindert man, dass einem sein Formular minimiert wird, wenn der Benutzer [Win]+[D] bzw. [Win]+[M] drückt? Mit WM_SYSCOMMAND kommt diese Notification jedenfalls nicht...

Danke im Voraus

Ganymed

Luckie 8. Okt 2004 11:27

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Warum willst du das verhindern? Wenn ich dies tastenkombinationen drücke, dann würde ich sehr ungehalten reagieren, wenn sich das Fenster nicht minimieren würde. :roll:

himitsu 8. Okt 2004 11:43

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Du könntest ja dein Programm einfach wieder wiederherstellen, nachdem es minimiert wurde, aber sowas sollte abschaltbar und auch standardmäßig abgeschaltet sein, damit Luckie nicht den Spaß verliert ;)

Jelly 8. Okt 2004 12:32

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Wo liegt eigentlich der Unterschied zwischen [Win]-[D] und [Win]-[M] :gruebel:

Ganymed 8. Okt 2004 12:37

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
@Luckie: Mein Progi ist ein Kalender, der direkt auf dem Desktop liegt und nicht in der Taskbar angezeigt wird.

@himitsu: Klar könnte ich das. Wenn ich denn mal merken würde, dass es minimiert wurde!

@Jelly: Ehrlich gesagt, habe ich keine Ahnung. Da es aber beide Möglichkeiten gibt, möchte ich auch beide abfangen.

himitsu 8. Okt 2004 12:47

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Ist im Grunde genommen das Selbe

[win]+D = show Desktop
[win]+M = Minimize all

Delphi-Quellcode:
Interface
  Type TForm0 = Class(TForm)
      Procedure FormCreate(Sender: TObject);
    Private
      Procedure FormMinimize(Sender: TObject);
      Procedure FormRestore(Sender: TObject);
    End;

Implementation
  {$R *.dfm}

  Procedure TForm0.FormCreate(Sender: TObject);
    Begin
      Application.OnMinimize := FormMinimize;
      Application.OnRestore := FormRestore;
    End;

  Procedure TForm0.FormMinimize(Sender: TObject);
    Begin
      //wurde minimiert
    End;

  Procedure TForm0.FormRestore(Sender: TObject);
    Begin
      //wurde wuederhergestellt
    End;

End.
weiteres siehe ... einfach mal in deinem Programm "Application." eingeben :zwinker:

Tom 8. Okt 2004 12:47

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Zitat:

Zitat von Jelly
Wo liegt eigentlich der Unterschied zwischen [Win]-[D] und [Win]-[M] :gruebel:

Win+D: Alle Fenster minimieren
Win+M: Alle Fenster, die in der Taskleiste sind, minimieren

Ganymed 8. Okt 2004 12:51

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
@himitsu: Hast du den Quellcode ausprobiert? Auf die Idee bin ich nämlich auch schon gestoßen. Funzt bei mir aber nicht... (D7Ent, WinXPPro)...

himitsu 8. Okt 2004 12:54

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Ja, der der ist aus meinem ShoutBox-Reader und funktioniert hervorragend ^^ (selbes System und ohne SP's)

Ganymed 8. Okt 2004 13:54

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Dann bin ich zu blöd das zu implementieren...

Code:
  TForm1 = class(TForm)
    //...
  private
    { Private declarations }
   // ...
    procedure ChatchMinimize(Sender: TObject);
  public
    { Public declarations }
  end;

procedure TForm1.ChatchMinimize(Sender: TObject);
begin
  ShowMessage('??');
  WindowState := wsNormal;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Application.OnMinimize := ChatchMinimize;
end;

Luckie 8. Okt 2004 14:01

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Zitat:

Zitat von Ganymed
@Luckie: Mein Progi ist ein Kalender, der direkt auf dem Desktop liegt und nicht in der Taskbar angezeigt wird.

Ja und? Wenn ich mal schnell an ein Icon auf den Desktop will, muss ich dann immer dein fenster beiseiteschieben oder wie, wen ich Pech habe. Da stellt sich mir die Frage, warum es nicht in der Taskbar angezeigt wird.

gmarts 8. Okt 2004 21:28

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Liste der Anhänge anzeigen (Anzahl: 1)
[OT]
Zitat:

Da stellt sich mir die Frage, warum es nicht in der Taskbar angezeigt wird.
Weil manche Programme nicht so relevant sind bzw eh immer laufen,so daß sie die Taskbar nicht vollmüllen dürfen.
Stell dir mal vor Dienste wären im Tray oder in der Taskbar zu sehen. Hiiillffe. :shock:






Ist zwar noch keine übervolle Taskbar(siehe Bild), aber einige Tasks mehr und die Benutzerfreundlichkeit geht flöten.

[/OT]


Nicht immer so misstrauisch Luckie! :cheers:

himitsu 8. Okt 2004 22:24

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Liste der Anhänge anzeigen (Anzahl: 1)
*hust* da gibt es abhilfe :zwinker:

Luckie 8. Okt 2004 22:45

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Zitat:

Zitat von gmarts
Weil manche Programme nicht so relevant sind bzw eh immer laufen,so daß sie die Taskbar nicht vollmüllen dürfen.
Stell dir mal vor Dienste wären im Tray oder in der Taskbar zu sehen. Hiiillffe. :shock:

Ja und wie will ich denn da drankommen? Ein Terminplaner sollte eigentlich relevant genug sein, um in der TNA zu erscheinen, wenn er minimiert ist.

Zitat:

Nicht immer so misstrauisch Luckie! :cheers:
Ich bin nicht mistrauisch, das stößt bei mir nur auf Unverständniss. Und ich habe generell ein eAbneigung gegen Programme, die sich nicht an die Standards halten und nicht so reagieren, wie man es von herkömmlichen Windows-Anwendungen gewohnt ist.

blackdrake 21. Mai 2005 14:05

Re: Minimieren verhindern bei [Win]+[D] und [Win]+[M]
 
Hallo.

Ich bin dabei, ein ähnliches Programm zu schreiben, dass nicht minimiert werden darf. Es handelt sich dabei um eine Wallpaper-Erweiterung, so ähnlich wie eine Sidebar.

Das Programm ist nicht in der Taskleiste und wird durch WIN+M nicht minimiert. Durch WIN+D verschwindet das Fenster aber - ohne, dass das OnMinimize-Ereignis aufgerufen wurde. Ich suche schon seit Stunden, habe aber zu WIN+D nichts herausgefunden.

Ich habe Win XP Pro (SP2) und D7E.

---

Übrigens: Es gibt zwischen WIN+D und WIN+M einige Unterschiede:

WIN+M minimiert alle Fenster, die in der Taskbar angezeigt werden, vollständig, sodass man sie alle wieder von Hand aufmachen muss.

WIN+D zeigt nur tempoär den Desktop - alle Fenster bleiben zwar maximiert, sind aber kurzzeitig in einer Art unsichtbarem Zustand. Bei nochmaligem Drücken der Tastenkombination werden die Fenster wieder sichtbar. Mir ist kein API-Ereignis bekannt, dass bei WIN+D ausgelöst wird. Bei "FormStyle = fsStayOnTop" bleibt das Fenster auf dem Desktop, auch bei WIN+D.


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