有没有可以读取屏幕像素点颜色并且触发按键的软件

有没有可以读取屏幕像素点颜色并且触发按键的软件,第1张

读取屏幕颜色软件很多,但是像要触发按键,这个需要后期制作一个程序,读取像素颜色的软件比如有,pipette软件,他只要一个按键,只要按下按键不用松开鼠标左键划过颜色就可以读取颜色,要锁定颜色只要鼠标右键就可以。

takecolor软件,是一款比较小巧灵活的拾取颜色的软件,使用快捷键alt+c就可以读取颜色值来。

Private Type RGBQUAD

rgbBlue As Byte

rgbGreen As Byte

rgbRed As Byte

rgbAlpha As Byte '透明通道

End Type

Private Type BITMAPINFOHEADER

biSize As Long '位图大小

biWidth As Long

biHeight As Long

biPlanes As Integer

biBitCount As Integer '信息头长度

biCompression As Long '压缩方式

biSizeImage As Long

biXPelsPerMeter As Long

biYPelsPerMeter As Long

biClrUsed As Long

biClrImportant As Long

End Type

Private Type BITMAPINFO

bmiHeader As BITMAPINFOHEADER

bmiColors As RGBQUAD

End Type

Private Declare Function GetDIBits Lib "gdi32" (ByVal aHDC 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

Private Declare Function GetWindowDC Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long

Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long

Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long

Private Declare Function BitBlt Lib "gdi32" (ByVal hDCDest As Long, ByVal XDest As Long, ByVal YDest As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hDCSrc As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long

Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long

Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long

Private Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As Long

Private Sub Command1_Click()

Dim hDCMemory As Long, hBmp As Long, hBmpPrev As Long, r As Long, hDCSrc As Long, hPal As Long, hPalPrev As Long

Dim LeftSrc As Long, TopSrc As Long, WidthSrc As Long, HeightSrc As Long, bytDataOut() As Byte, lngOut() As Long

Dim BitInfo As BITMAPINFO

Dim i As Long, j As Long

'修改下面4个参数就可以调整画面范围

LeftSrc = 0

TopSrc = 0

WidthSrc = 1024

HeightSrc = 768

hDCSrc = GetWindowDC(0) '(hWndSrc)

hDCMemory = CreateCompatibleDC(hDCSrc)

hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)

hBmpPrev = SelectObject(hDCMemory, hBmp)

r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy)

ReDim bytDataOut(2, WidthSrc - 1, HeightSrc - 1)

ReDim lngOut(WidthSrc - 1, HeightSrc - 1)

With BitInfobmiHeader

biBitCount = 24

biCompression = 0

biPlanes = 1

biSize = Len(BitInfobmiHeader)

biWidth = WidthSrc

biHeight = -HeightSrc

End With

GetDIBits hDCMemory, hBmp, 0, HeightSrc, bytDataOut(0, 0, 0), BitInfo, 0

hBmp = SelectObject(hDCMemory, hBmpPrev)

r = DeleteDC(hDCMemory)

r = ReleaseDC(hWndSrc, hDCSrc)

DeleteObject hBmp

For i = LeftSrc To WidthSrc - 1

For j = TopSrc To HeightSrc - 1

lngOut(i, j) = RGB(bytDataOut(0, i, j), bytDataOut(1, i, j), bytDataOut(2, i, j))

Next

Next

MsgBox "数据已存放在lngOut数组里面" & lngOut(5, 5)

End Sub

修改了下,这次没问题啦

以上就是关于有没有可以读取屏幕像素点颜色并且触发按键的软件全部的内容,包括:有没有可以读取屏幕像素点颜色并且触发按键的软件、VB如何快速获取屏幕所有坐标的颜色值,是全部每一个点,保存在二维数组里面。、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10149107.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存