Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Hiirirutto, näytön sotkeva pilaohjelma

Sivun loppuun

solof [10.02.2003 20:08:02]

#

Hiiri rutto on tavallaan yksinkertainen
pilailu ohjelma, joka luo satunnaisesti pixeleitä
siihen ikkunaan minkä päällä hiiri on.
Ohjelma käyttää while silmukkaa joka saattaa tuntua nopeimilla koneilla liian nopealta silloin kannatta käyttää timeria.
Ohjelma tarvitsee 2 command buttonia (command1, Command2)

'ohjelma piirtää pixeleitä siihen ikkunaan missä hiiri on
'T: Solof


Private Declare Function SetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal crColor As Long) As Long
Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long

Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Dim cursorpos As POINTAPI
Dim winpos As RECT
Dim RR, GG, BB, Runni As Integer

Private Sub Command2_Click()
    Runni = 0 'kiellä ohjelman toiminta
End Sub

Private Sub Form_Load()
    Command1.Caption = "käynnistä"
    Command2.Caption = "lopeta"

    'VÄRIT:
    BB = 0 'sininen 0-255
    RR = 250 'punanen 0-255
    GG = 0 'vihre' 0-255
End Sub

Private Sub Command1_Click()
    Runni = 1 'aseta ohjelma käyntiin
    Randomize
    Do While Runni = 1 'jos ohjelma on käynissä

        Call GetCursorPos(cursorpos) 'hiiren sijainti
        Whwnd = WindowFromPoint(cursorpos.x, cursorpos.y) 'ikkunan hwnd hiiren sijainnista
        Whdc = GetWindowDC(Whwnd) 'hdc hwnd:stä
        GetWindowRect Whwnd, winpos 'ikkunan sijoitus

        X1 = Int(Rnd * (winpos.Right - winpos.Left)) 'arvotaan jokin kohta ikkunana X akselissa
        Y1 = Int(Rnd * (winpos.Bottom - winpos.Top)) 'arvotaan jokin kohta ikkunana Y akselissa

        Call SetPixel(Whdc, X1, Y1, RGB(RR, BB, GG)) 'asetetaan pixeli kohtaan X1,Y1
        DoEvents 'muut toiminnot
    Loop
End Sub

Sami [10.02.2003 21:22:02]

#

Vaikuttaa erittäin ärsyttävältä (ainakin selostuksen mukaan)

progo [11.02.2003 08:01:59]

#

Hauskaa! :) Opettaa myös hyvin APIn käyttöä..

Kossu [11.02.2003 15:46:48]

#

Hassu on kyl, juu-u.

solof [11.02.2003 16:13:23]

#

Kiitoksia, tästä tulee vielä 2 versio kunhan kerkiän koodata sen

Teme [11.02.2003 16:13:26]

#

Onhan se ihan mukava... Näistä kaikista Ohjelmointiputkan pilailuvinkeistä saisi yhdistelemällä aikaan jo jonkin sortin viruksen ;-)

snakari [12.02.2003 16:10:56]

#

aika ärsyttävä, mutta kiva

Monkkats [21.09.2003 20:19:21]

#

Jee, iha siisti ;)

miiro [09.11.2003 16:07:45]

#

hyvä!

miiro [09.11.2003 16:14:40]

#

heh...

SirDayBat [23.06.2004 18:54:18]

#

just hyvä


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta