AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Fenster nicht minimieren

Ein Thema von Optiplex · begonnen am 28. Okt 2008 · letzter Beitrag vom 7. Nov 2008
Antwort Antwort
Seite 2 von 4     12 34      
Optiplex

Registriert seit: 5. Mär 2008
131 Beiträge
 
Delphi 2005 Personal
 
#11

Re: Fenster nicht minimieren

  Alt 28. Okt 2008, 15:42
Zitat von Die Muhkuh:
Gibt es überhaupt einen sinnvollen Grund, warum man das verhindern sollte? Dafür ist die Funktion ja da.
Die Antwort hat dir Sherlock bereits gegeben, es gibt Anwendungen,da möcht man einfach ein Fenster
egal in welcher Form auf dem Desktop liegen haben, und dieses soll dann natürlich nicht einfach minimiert werden können.

Optiplex
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#12

Re: Fenster nicht minimieren

  Alt 28. Okt 2008, 17:23
Zitat von Optiplex:
Die Antwort hat dir Sherlock bereits gegeben, es gibt Anwendungen,da möcht man einfach ein Fenster
egal in welcher Form auf dem Desktop liegen haben, und dieses soll dann natürlich nicht einfach minimiert werden können.
Argml. Sorry, aber wenn ich als Benutzer auf "Desktop anzeigen" klicke, dann soll gefälligst auch der Desktio angezeigt werden, und nicht irgendeine Form, die meint, sie müsse sich trotzdem auf den Desktop pflanzen Es ist einfach nur ein scheiß Stil, das Standardverhalten des Betriebssystems derart abzuändern.

Btw bezweifle ich, dass Deskbands eine Lösung für dich sind. Du kannst nämlich nur festlegen, ob es unten, oben, rechts oder links ist, und es geht dann immer über die komplette Breite/Höhe. Außerdem wird es *immer* angezeigt, andere Anwendungen können nicht in den Bereich des Deskbands verschoben oder maximiert werden. Aber es dürfte denke ich die einzige Lösung sein, die zuverlässig sicherstellt, dass dein Zeug auch nach "Desktio anzeigen" noch angezeigt wird.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#13

Re: Fenster nicht minimieren

  Alt 28. Okt 2008, 17:34
Um noch mehr zur Verwirrung beizutragen: Drück mal [Windows]+M

Win+M minimiert alle Fenster.

Win+D (bzw. "Desktop anzeigen") Holt den Desktop in den Vordergund.

Ein nicht zu vernachlässigender Unterschied

(Da du ja bereits das Minimieren verhinderst, nehme ich mal an, dass dir dies bei Win+M gelingt ?)

Du könntest jetzt natürlich die Message-Loop von dem Progman Fenster subclassen und die DTM_RAISE message (WM_USER + 83) abfangen.

Empfehlenswert ist das jedoch nicht (allg. das Verhalten sich nicht minimieren zu lassen.)

Quellen:
http://blogs.msdn.com/oldnewthing/ar...28/143771.aspx
und http://www.eggheadcafe.com/forumarch...st23443993.asp
  Mit Zitat antworten Zitat
Optiplex

Registriert seit: 5. Mär 2008
131 Beiträge
 
Delphi 2005 Personal
 
#14

Re: Fenster nicht minimieren

  Alt 29. Okt 2008, 09:18
Zitat von Tyrael Y.:
WM_SIZE könnte es auch sein mit SIZEICONIC bzw. SIZE_MINIMIZED
Hallo Tyrael Y. das habe ich getestet, hat aber nichts geholfen.



Zitat von Meflin:
Argml. Sorry, aber wenn ich als Benutzer auf "Desktop anzeigen" klicke, dann soll gefälligst auch der Desktio angezeigt werden, und nicht irgendeine Form, die meint, sie müsse sich trotzdem auf den Desktop pflanzen Es ist einfach nur ein scheiß Stil, das Standardverhalten des Betriebssystems derart abzuändern.
Meflin, ich will das Standardverhalten nicht ändern, es soll auch kein großes Fenster über dem Desktop liegen.Soweit mir bekannt bleiben Widgets bei 'Desktop anzeigen' ebenfalls auf dem Desk sichbar und minimieren sich nicht. Ansonsten hast du recht dass Deskbands nicht die Lösung für mein Problem ist.

jfheins,
die Links muss ich mir noch ansehen, ich gebe dir noch Bescheid ob sie mir weiterhelfen.

Danke für die Antworten
Optiplex
  Mit Zitat antworten Zitat
Frankfurtoder

Registriert seit: 27. Mär 2008
112 Beiträge
 
RAD-Studio 2010 Pro
 
#15

Re: Fenster nicht minimieren

  Alt 29. Okt 2008, 09:29
Soll das Fenster dann niemals minimiert werden oder einfach nur dieses Desktop Anzeigen trotzen? Ansonsten könntest du doch prüfen ob das Fenster minimiert wurde und es wieder aufrufen.
Erik
Alles gut?
  Mit Zitat antworten Zitat
Optiplex

Registriert seit: 5. Mär 2008
131 Beiträge
 
Delphi 2005 Personal
 
#16

Re: Fenster nicht minimieren

  Alt 29. Okt 2008, 12:55
Zitat von jfheins:
Du könntest jetzt natürlich die Message-Loop von dem Progman Fenster subclassen und die DTM_RAISE message (WM_USER + 83) abfangen.

Empfehlenswert ist das jedoch nicht (allg. das Verhalten sich nicht minimieren zu lassen.)

Quellen:
http://blogs.msdn.com/oldnewthing/ar...28/143771.aspx
und http://www.eggheadcafe.com/forumarch...st23443993.asp
Hallo jfheins,
ich will nicht das allg. Verhalten von Windows ändern, ich möchte nur, dass mein kleines Fenster sichtbar bleibt und diese "ToggleDesktop" Nachricht ignoriert.

Zitat von Frankfurtoder:
Ansonsten könntest du doch prüfen ob das Fenster minimiert wurde und es wieder aufrufen.
Dies könnte man machen, hat nur einem Schönheitsfehler, dass die Minimize Animation zu sehen ist , dies wirkt Amateurhaft

Gruss Optiplex
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#17

Re: Fenster nicht minimieren

  Alt 29. Okt 2008, 17:20
Okay, also nochmal

1. Würde es immernoch nicht mögen. Persönliche Meinung

2. Was passiert wenn du statt "Desktop anzeigen" mal Win+M drückst?

3. Um es abzufangen, wenn der Desktop in den Vordergung geholt wird (nicht dasselbe wie alle Minimieren) könntest du versuchen, dich in die Nachrichtenschleife vom Desktop ("Progman") einzuhängen und auf die DTM_RAISE Nachricht zu reagieren. (bspw. mit einem Postmessage an deine anwendung, die sich dann beim verarbeiten dieser message in den vordergrund holt)
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#18

Re: Fenster nicht minimieren

  Alt 29. Okt 2008, 18:35
Zitat von Optiplex:
Soweit mir bekannt bleiben Widgets bei 'Desktop anzeigen' ebenfalls auf dem Desk sichbar und minimieren sich nicht. Ansonsten hast du recht dass Deskbands nicht die Lösung für mein Problem ist.
Doch, die Widgets sind dann "verschwunden" und auch die Sidebar wird nicht mehr angezeigt (so lange, bis man wieder ein anderes Fenster öffnet/maximiert und "normal" minimiert)
  Mit Zitat antworten Zitat
Optiplex

Registriert seit: 5. Mär 2008
131 Beiträge
 
Delphi 2005 Personal
 
#19

Re: Fenster nicht minimieren

  Alt 30. Okt 2008, 09:20
Zitat von jfheins:
2. Was passiert wenn du statt "Desktop anzeigen" mal Win+M drückst?

3. Um es abzufangen, wenn der Desktop in den Vordergung geholt wird (nicht dasselbe wie alle Minimieren) könntest du versuchen, dich in die Nachrichtenschleife vom Desktop ("Progman") einzuhängen und auf die DTM_RAISE Nachricht zu reagieren. (bspw. mit einem Postmessage an deine anwendung, die sich dann beim verarbeiten dieser message in den vordergrund holt)
Hallo jfheins,

Win+M bekommt man mit WM_Syscommand in den Griff. Wie hängt man sich in die Nachrichtenschleife von "Progman" ein, da bin ich mit meinem Wissen an eine Grenze gestoßen , vielleicht kann du mir da ein bischen Nachhilfe geben. Auf jeden Fall habt ihr mich dahingehend überzeugt, dass ich diese Funktion (falls es gelingt sie zu realisieren) in die Options aufnehmen werde, so dass jeder User selbst bestimmen kann ob er dieses Fenster auf dem Desktop liegen hat oder nicht.

Zitat von Meflin:
Doch, die Widgets sind dann "verschwunden" und auch die Sidebar wird nicht mehr angezeigt (so lange, bis man wieder ein anderes Fenster öffnet/maximiert und "normal" minimiert)
Sorry Meflin, da habe ich mich scheinbar getäuscht, da ich kein Vista sondern nur da allte XP habe, hatte ich das anders in Erinnerung.

Optiplex
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#20

Re: Fenster nicht minimieren

  Alt 30. Okt 2008, 15:46
So ungefähr:
Delphi-Quellcode:
var
  OldWndProc: Pointer;

begin // Change WndProc
  OldWndProc := SetWindowLong({Handle}, GWLP_WNDPROC, @NewWndProc);
end;

function NewWndProc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT;
begin
  if ({Message})
    // Handle Message
  else // Call old WndProc
    CallWindowProc(OldWndProc, hWnd, uMsg, wParam, lParam);
end;
Das Handle bekommst du über FindWindow
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 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