Hallo...
Mit dieser Funktion kann ich alle geöffneten Fenster auf einmal schließen.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
h: HWnd;
begin
h :=
handle;
while h > 0
do
begin
ShowWindow(FindWindow(
nil,'
GetDesktopWindow'),SW_SHOW);
if isWindowVisible(h)
then
postmessage(h, WM_SYSCOMMAND, SC_ClOSE, 0);
h := getnextwindow(h, GW_HWNDNEXT);
end;
end;
Klappt soweit auch, nur wenn ich mir zwischendurch den Desktop anzeigen lasse, mit dem "Desktop anzeigen-Button" in der Taskleisteund dann den Button in meinem Programm nochmal drücke, verschwindet der Dektop auf nimmer Wiedersehen.
Kann man den Desktop irgendwie ausschließen?
Habe es dann nochmal so versucht, klappt aber auch nicht.
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
h, b: HWnd;
begin
h :=
handle;
while h > 0
do
begin
ShowWindow(FindWindow(
nil, '
GetDesktopWindow'), SW_SHOW);
if isWindowVisible(h)
then
postmessage(h, WM_SYSCOMMAND, SC_ClOSE, 0);
h := getnextwindow(h, GW_HWNDNEXT);
end;
b :=
handle;
while b > 0
do
begin
ShowWindow(FindWindow(
nil, '
Progman'), SW_SHOW);
if isWindowVisible(b)
then
exit;
end;
end;
Grüße