Seite 1 von 1

Alle Fenster verschwinden lassen : leerer Bildschirm

Verfasst: 26.07.2006 18:54
von Olaf
Programm versteckt alle aktiven Fenster (wenn ein Fenster den Focus erhält).
Somit werden alle Fenster versteckt, die gerade aufgehen (haben dadurch den Focus)
oder angeklickt werden. Man hat so nach ein paar Klicks nur noch einen leeren Bildschirm.
Es ist daher nicht möglich während der Ausführung der Repeat...Until-Schleife ein
Programm zu öffnen. Um diese zu verlassen, muss Escape gedrückt werden.

Danach werden die versteckten Fenster wieder sichtbar gemacht.

Code: Alles auswählen

Dim hWnd.l(a) ;Array für die Fenster-Handles

Repeat
  hWnd=GetForegroundWindow_() ;aktives Fenster ermitteln
  If hWnd
    a+1
    ReDim hWnd.l(a) ;Array-Größe um 1 erhöhen
    hWnd(a)=hWnd    ;aktuelles Fenster-Handle speichern (zur Umkehrung)
    ShowWindow_(hWnd,#SW_HIDE) ;Fenster verstecken
  EndIf
  Delay(10)         ;Anderen Programmen Prozessorzeit lassen (obwohl das 
                    ;Multitasking zumindest jetzt unmöglich ist)
Until GetAsyncKeyState_(#VK_ESCAPE) ;Wiederholen bis Escape gedrückt wird

For p=1 To a
  ShowWindow_(hWnd(p),#SW_SHOW)  ;Alle versteckten Fenster wieder sichtbar machen
Next p

Verfasst: 05.08.2006 12:29
von AND51
Habe es nicht ausprobiert, aber: Warum nimmst du ein Array? Würde es mit LinkedLists nicht viel besser gehen? Ist für dynamische Dibnge nämlich viel besser geeignet, als Arrays, da LLs für das Hinzufügen und Löschen von Elementen optimiert ist.