Thema: Delphi Wm_syscommand

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Wm_syscommand

  Alt 3. Okt 2005, 09:42
Hallo Amd,

der Code in deinem Eröffnungsbeitrag wurde schon ohne ShowWindow() und mit SC_MINIMIZE anstelle SC_CLOSE veröffentlicht. Für das Minimieren gibt es inzwischen eine modernere Lösung:

Delphi-Quellcode:
uses
  ShlObj,
  ComObj;

procedure MinimizeAll;
var
  Shell : OleVariant;
begin
  Shell := CreateOleObject('Shell.Application') ;
  Shell.MinimizeAll;
end;
Wenn du beim Schließen der Programmfenster den program manager ausnehmen willst, dann musst du den Fenstertitel "Program Manager" abfangen:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  h: HWnd;
  buf: array [0..255] of char;
begin
  h := Handle;
  while h > 0 do
  begin
    if IsWindowVisible(h) then
    begin
      GetWindowText(h, buf, SizeOf(buf));
      if StrPas(@buf) <> 'Program Managerthen
        PostMessage(h, WM_SYSCOMMAND, SC_MINIMIZE, 0);
    end;
    h := GetNextWindow(h, GW_HWNDNEXT);
  end;
end;
@Matti: handle ist hier self.Handle - das window handle von Form1.

Grüße vom marabu
  Mit Zitat antworten Zitat