| Если нужно много перебора делать, то лучше сделай так. 
 Код Модуля:
 
 Public Type BITMAPINFOHEADER
   bmSize As Long
   bmWidth As Long
   bmHeight As Long
   bmPlanes As Integer
   bmBitCount As Integer
   bmCompression As Long
   bmSizeImage As Long
   bmXPelsPerMeter As Long
   bmYPelsPerMeter As Long
   bmClrUsed As Long
   bmClrImportant As Long
End Type
Public Type RGBTRIPLE
   Blue As Byte
   Green As Byte
   Red As Byte
End Type
Public Type BITMAPINFO
   bmHeader As BITMAPINFOHEADER
   bmColors(0 To 255) As RGBTRIPLE
End Type
 Public Declare Function SetDIBits Lib "Gdi32.dll" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, ByRef lpBits As Any, ByRef lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
Public Declare Function GetDIBits Lib "Gdi32.dll" (ByVal hdc As Long, ByVal hBitmap As Long, ByVal nStartScan As Long, ByVal nNumScans As Long, lpBits As Any, lpBI As BITMAPINFO, ByVal wUsage As Long) As Long
Public Declare Function BitBlt& Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal XSrc As Long, ByVal YSrc As Long, ByVal dwRop As Long)
 Public ScreenW As Long
Public ScreenH As Long
Public BitmapInformation As BITMAPINFO
Public temp() As RGBTRIPLE
 Код формы.
 Создай картинку на форме. Picture1
 
 
ScreenW = screen.width
 ScreenH = screen.Height
 With BitmapInformation.bmHeader
 .bmSize = Len(BitmapInformation.bmHeader)
 .bmBitCount = 24
 .bmClrImportant = 0
 .bmClrUsed = 0
 .bmCompression = BI_RGB
 .bmHeight = ScreenH
 .bmWidth = ScreenW
 .bmPlanes = 1
 .bmSizeImage = 0
 .bmXPelsPerMeter = 0
 .bmYPelsPerMeter = 0
 End With
 BitBlt Form1.Picture1.hdc, 0, 0, ScreenW, ScreenH, GetDC(0), 0, 0, vbSrcCopy
 GetDIBits Form1.Picture1.hdc, Form1.Picture1.Image, 0, ScreenH, temp(0, 0), BitmapInformation, DIB_RGB_COLORS
 
 Все точки, в формате RGB будут у тебя в массиве temp(screenW-1,screenH-1)
 Ответить
       |