谁能告诉我,用按键精灵怎么样用IFcolor实现以下操作?

判断两个指定点颜色为绿色和白色时,执行A操作。若判断两个指定颜色为红色和白色时,执行B操作。... 判断两个指定点颜色为绿色和白色时,执行A操作 。若判断两个指定颜色为红色和白色时,执行B操作。 展开
 我来答
圆桌4819
2011-09-22 · TA获得超过345个赞
知道小有建树答主
回答量:694
采纳率:0%
帮助的人:412万
展开全部
可以使用API函数GetPixel,返回值是一个Long,可以通过Hex()将其转化为十六进制表示的String.
我帮您编了一个Function,您可以参照试试:
Private Function ifColor(ByVal x As Long, ByVal y As Long, ByVal color As Long) As Boolean
Dim nTmpColor As Long
nTmpColor = GetPixel(GetDC(0), x, y)
ifColor = (color = nTmpColor)
End Function
输入要获取的屏幕坐标x,y,以及颜色值的long值(如果是RGB的就调用的时候用RGB(R分量,G分量,B分量)函数转换成long,如果是HEX格式的就用CLng("&h" & Hex(HEX格式字符串))来取得Long值

/////////////////////3月9日修改
昨晚太困了,今天早晨起来重新给您写了一个程序,可以获得屏幕任意一点的RGB值,以及判断与给定的颜色是否相等
您可以新建一个VB6工程,在Form1上增加一个Timer空间,设置Enabled=True,Interval=100来测试效果.
注意,我的输出在立即窗口中,如果您没有打开立即窗口,可能看不到程序运行的效果,请在IDE中按Ctrl+G打开立即窗口.
代码如下:
Option Explicit

'定义一个POINTAPI
Private Type POINTAPI
x As Long
y As Long
End Type

'定义一个GRB结构
Private Type STRUCTRGB
Red As Integer
Green As Integer
Blue As Integer
End Type

'Windows API 声明
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function GetDC 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 Sub Timer1_Timer()
On Error Resume Next
Dim myRgb As STRUCTRGB
myRgb = getColor()
Form1.BackColor = RGB(myRgb.Red, myRgb.Green, myRgb.Blue)
Debug.Print myRgb.Red; myRgb.Green; myRgb.Blue
End Sub

'测试颜色函数,给定屏幕任意坐标的x值和y值以及颜色的Long形式值,返回True or False
Private Function ifColor(ByVal x As Long, ByVal y As Long, ByVal color As Long) As Boolean
On Error Resume Next
Dim nTmpColor As Long
nTmpColor = GetPixel(GetDC(0), x, y)
ifColor = (color = nTmpColor)
End Function

'获取屏幕任意一点的颜色,返回GRB结构
Private Function getColor() As STRUCTRGB
On Error Resume Next
Dim tpTemp As POINTAPI
Call GetCursorPos(tpTemp) '获取鼠标位置
Dim myColor As Long
myColor = GetPixel(GetDC(0), tpTemp.x, tpTemp.y) '获取鼠标所在位置颜色的Long值
'分离颜色
getColor.Red = myColor And &HFF
getColor.Green = (myColor And &HFF00&) \ &H100
getColor.Blue = (myColor And &HFF0000) \ &H10000
End Function
百度网友4a3c6c321
2011-09-22
知道答主
回答量:44
采纳率:0%
帮助的人:27.1万
展开全部
if getcolor1=白色 and getcolor2=绿色 then
A操作
elseif getcolor1=红色 and getcolor2=白色 then
B操作
else
其他操作或跳过
endif
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式