Плывет экран

Маленький пример, вроде скринсейвера, создающий искажение экрана.

Платформа: Windows
Автор: xroot

#INCLUDE Once "windows.bi"

Dim As HDC hDC
Dim As Integer DesktopW,DesktopH,W,H,X,Y,X1,Y1

Screeninfo DesktopW,DesktopH
hDC=GetDC(NULL)

Do
    If GetAsyncKeyState(&h1B)<>NULL Then Exit Do
    W=CInt(Rnd*(DesktopW-3)+1)
    H=Cint(Rnd*(DesktopH-3)+1)
    X=Cint(Rnd*(DesktopW-W+1)+1)
    Y=Cint(Rnd*(DesktopH-H+2)+1)
    X1=Cint(Rnd*3+X-1)
    Y1=Cint(Rnd*3*-1+Y)
    BitBlt hDC,X,Y,W,H,hDC,X1,Y1,SRCCOPY
    Sleep 1
Loop

RedrawWindow NULL,NULL,NULL,RDW_ALLCHILDREN+RDW_INVALIDATE
ReleaseDC NULL,hDC