Alle Fenster verschwinden lassen : leerer Bildschirm

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Olaf
Beiträge: 117
Registriert: 20.04.2006 14:51
Wohnort: 66606 St.Wendel (Niederlinxweiler, Dr.Albert-Schweitzer-Str.9)
Kontaktdaten:

Alle Fenster verschwinden lassen : leerer Bildschirm

Beitrag 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
PB 4.xx (Windows & Linux & Mac OS X)
Treffen sich 2 Kurven in der Unendlichkeit. Sagt die eine zur anderen: "Hau ab aus meinem Definitionsbereich oder ich leite dich ab!"
Darauf die andere: "Mach nur! Ich bin die e-Funktion." :lol:
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten