Hiirirutto2 eroaa aika paljon entisestä, suurin ero on kuitenkin se että se piirtää kuvia pixeleiden sijasta.
Eli Tee Formille:
Picturebox(Picture1), Timer(Timer1), CommandButton(Command1)
Seuraavaksi Lataa Joku Kuva Picture1:seen. Kuvaksi ei kannata valita liian isoa kuvaa, ikonin koko on aika sopiva.
Sitten painat vain nappulaa ja loppu toimii samoin kuin hiirirutto1:ssä. Eli Kuvia alkaa ilmestyä siihen ikkunaan minkä päällä hiiri on
'Hiirirutto2
'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 pixeli(500, 500) As Long
Dim leveys, pituus As Long
Private Sub Command1_Click()
If Timer1.Enabled = False Then
leveys = Picture1.Width - 5 'laitetaan muistiin kuvan leveys
pituus = Picture1.Height - 5 'laitetaan muistiin kuvan korkeus
For pit = 1 To pituus
For lev = 1 To leveys
pixeli(lev, pit) = GetPixel(Picture1.hdc, lev, pit)
'Muodostetaan kuvasta eräänlainen tietokanta/taulukko
Next
Next
Timer1.Enabled = True
Command1.Caption = "LOPETA"
Exit Sub
End If
If Timer1.Enabled = True Then
Command1.Caption = "KÄYNNISTÄ"
Timer1.Enabled = False
Exit Sub
End If
End Sub
Private Sub Form_Load()
Timer1.Enabled = True
Timer1.Interval = 100 'Kuinka nopeasti kuvia tulee
Form1.ScaleMode = 3
Picture1.ScaleMode = 3
Command1.Caption = "KÄYNNISTÄ"
Picture1.AutoSize = True
Picture1.BackColor = RGB(220, 10, 100) 'Asetetaan picture1:n taustaväri (liila), Jotta tunnistettaisiin läpinäkyvä alue
Timer1.Enabled = False
End Sub
Private Sub Timer1_Timer()
Call GetCursorPos(cursorpos) 'otetaan kursorin paikka muistiin
Whwnd = WindowFromPoint(cursorpos.x, cursorpos.y) 'haetaan ikkunan sijoitus hiiren kordinaateista
whdc = GetWindowDC(Whwnd) 'otetaan hwnd:tä Hdc
GetWindowRect Whwnd, winpos 'Haetaan ikkunan mitat
ARTP whdc 'piirretään kuva
End Sub
Sub ARTP(winid) 'Lisätään Kuva Näytölle
X1 = Int(Rnd * (winpos.Right - winpos.Left - pituus)) 'Arvotaan X -Akselista kohta valitun ikkunan sisällä
Y1 = Int(Rnd * (winpos.Bottom - winpos.Top - leveys)) 'Arvotaan Y -Akselista kohta valitun ikkunan sisällä
For pit = 1 To pituus
For lev = 1 To leveys
If pixeli(lev, pit) <> 6556380 Then 'Jos väri on muu kuin liila
SetPixel winid, lev + X1, pit + Y1, pixeli(lev, pit)
'Ladataan tieto taulukosta ja piirretään pixeli kerralla
End If
Next
Next
End SubSinultapa paljon koodeja tulee :)
Tämäpä vasta siisti koodipätkä. Kuten jo aiemmin mainitsin, minkälainen virus syntyisikään, jos kaikki Ohjelmointiputkan pilailukoodit yhdistettäisiin?
Joo'o.. hirmu hieno :)
Iha hieno :) Aluks sain toimii ton mut sitte sekotin sen ja tein uusiks ja nyt ei enää toimi oudosti vaik tein uusiks ihan samallalailla ku aluks :(
Ja taas sain toimii ku muutin tost
Picture1.BackColor = RGB(220, 10, 100)
kohasta noit väreit...
hauska
Laitoin kuvaksi Winflagin! Windows- kapina! Liput valtaavat koneen!
Aihe on jo aika vanha, joten et voi enää vastata siihen.