Ich wollte das alle Fesnter in Windows verteckt werden und nach Beenden meines Programmes wieder alle angezeigt werden in der ursprünglichen Position. Dazu hab ich folgendes gemacht.
In erster Linie wollte ich jetz , dass ihr mir freundlicherweise erklärt was hier falsch an meinem Code ist und mir vielleicht einen Verbesserungsvorschlag und/oder eine Alternative gebt.
Und zwar läuft folgendes Schief. Nach Beenden meines Programmes werden alle möglichen Fenster angezeigt, die ich noch nie gesehen habe oder keine wirklichen sind.
Unwichtiges hab ich rausgeschnitten aus dem Code.
Delphi-Quellcode:
interface
var
h: HWnd;
WindowArray :
Array[0..255]
of HWnd;
index2: Integer;
implementation
procedure TForm1.FormCreate(Sender: TObject);
// --------------------------ALLE FENSTER Verstecken-----------------------
begin
h :=
Handle;
index2 := 0;
while h > 0
do
begin
WindowArray[index2] := h;
if IsWindowVisible(h)
then
ShowWindow(h, SW_HIDE);
index2 := index2 +1 ;
h := GetNextWindow(h, GW_HWNDNEXT);
end;
end;
procedure TForm1.btOkClick(Sender: TObject);
begin
//-------Fenster wieder zeigen ------------------------------
h :=
Handle;
index2 := 0;
while h > 0
do
begin
index2 := index2 +1 ;
h := WindowArray[index2];
ShowWindow(h, SW_SHOW);
end;
Close;
end;
Eigentlich müssten doch nur die Fenster wieder angezeigt werden , die in meinem Array gespeichert worden sind ? Oder geht das so gar nicht ?
Bin dankbar für jede Hilfe.