Yapmış oldugum programda pictıre boxın içine ekran görüntusunu pixel olarak atmak istiyorum yani ekranı nokta nokta kopyalasın yazmış oldugun kod aşagıdadır:
Bu Program calışıyor ama belli bir yerden sonra out of memory error veya involid proverty volue hatası veriyor. Bunu nasıl giderebilirim. Benim asıl amacım fareyle ekranın bir yerine tıkladığım zaman oranın renk kodunu forma aktarsın istiyorum. Aslında onuda yaptım ama oda belli bir tıklamadan sonra böyle bir hata verdi. Sanırım bunu asabilirsem onu da asarım. Şimdiden verdiğiniz cevaplar için tesekkur ederim.
Yapmış oldugum programın dosyaları upload ettim
program linki
Kod:
Option Explicit
Private Declare Function GetWindowDC Lib "user32" (ByVal hWnd 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 SetPixelV Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long
Private Sub Form_Load()
Hide
Picture2.BackColor = vbWhite
Caption = "GetPixel() & SetPixel() Example"
Show
End Sub
Private Sub cmdCopyImage_Click()
Dim i As Long, j As Long
Picture2.AutoRedraw = True
Picture2.Cls
For i = 0 To 250
For j = 0 To 250
SetPixelV Picture2.hdc, i, j, GetPixel(GetWindowDC(0), i, j)
Next
Picture2.Refresh
Next
End Sub
Yapmış oldugum programın dosyaları upload ettim
program linki