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 Manager'
then
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