1.)
Ich würde die Message WM_CLOSE benutzen da nicht alle Programme auf SC_CLOSE reagieren.
2.)
Wenn du alle offenen Fenster schliesst bleibt nat. nix mehr übrig, du solltest also prüfen was du zu machen willst und was nicht.
Delphi-Quellcode:
program ProjectCloseAllWindows;
uses
Windows;
var
h: HWnd;
buf:
array[0..1024]
of char;
s:
string;
n: integer;
BEGIN
h :=
handle;
while h > 0
do
begin
if isWindowVisible(h)
then
begin
GetClassName(h, buf, n);
s := strPas(buf);
if LowerCase(s) <> '
progman'
then
SendMessage(h, WM_SYSCOMMAND, WM_ClOSE, 0);
end;
h := getnextwindow(h, GW_HWNDNEXT);
end;
END.
...müsste klappen.