VB 调用按键精灵的命令
如何用VB调用按键精灵的命令例如象ifcolorfindpic等的...请高手指点下...把例子写下..因为是菜鸟.所以能详细的尽量详细下.谢谢!!...
如何用VB 调用按键精灵的命令
例如象 ifcolor
findpic
等的...请高手指点下...把例子写下..因为是菜鸟.所以能详细的尽量详细下.谢谢!! 展开
例如象 ifcolor
findpic
等的...请高手指点下...把例子写下..因为是菜鸟.所以能详细的尽量详细下.谢谢!! 展开
展开全部
1 VB里引用 那个QMDispatch.dll
2 在系统中用regsvr32命令注册 DLL
注.QMDispatch.dll是按键精灵中 带的.
用regsvr32命令注册他的时候注意
1 路径中不能有中文名字(按键精灵默认的安装路径目录名是中文的)
2 单独把QMDispatch.dll这个文件复制到其他目录 注册也不起作用.
解决方法是把按键精灵 目录中的几个DLL文件一起复制到一个 目录中.然后执行 regsvr32 注册QMDispatch.dll 成功
3程序里加入 Private Declare Function FindPic Lib "QMDispatch" () As Long
4
dim pos as long
Set QMDispatchObj = CreateObject("QMDispatch.QMFunction")
参数 左, 上, 右, 下,寻找图片的路径,相似度
pos=QMDispatchObj.FindPic(0, 0, 1280, 1024, "E:\项目\梦幻西游外挂\进入游戏.bmp", 0.9)
msgbox int(pos/8192)'X左边
msgbox pos MOD 8192 'Y左边
VB6SP6 XPSP2 下运行成功,之前把相似度设成 0.9找不到.后来改成了0.5 可以找到,但相对速度降低了一些.
2 在系统中用regsvr32命令注册 DLL
注.QMDispatch.dll是按键精灵中 带的.
用regsvr32命令注册他的时候注意
1 路径中不能有中文名字(按键精灵默认的安装路径目录名是中文的)
2 单独把QMDispatch.dll这个文件复制到其他目录 注册也不起作用.
解决方法是把按键精灵 目录中的几个DLL文件一起复制到一个 目录中.然后执行 regsvr32 注册QMDispatch.dll 成功
3程序里加入 Private Declare Function FindPic Lib "QMDispatch" () As Long
4
dim pos as long
Set QMDispatchObj = CreateObject("QMDispatch.QMFunction")
参数 左, 上, 右, 下,寻找图片的路径,相似度
pos=QMDispatchObj.FindPic(0, 0, 1280, 1024, "E:\项目\梦幻西游外挂\进入游戏.bmp", 0.9)
msgbox int(pos/8192)'X左边
msgbox pos MOD 8192 'Y左边
VB6SP6 XPSP2 下运行成功,之前把相似度设成 0.9找不到.后来改成了0.5 可以找到,但相对速度降低了一些.
展开全部
我不会,这是抄的,只找到这么点,如果可以的话,也许能明白怎么调用其他函数吧
*******************************
http://zhidao.baidu.com/question/21216189.html
调用ifcolor函数
可以使用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
*******************************
http://zhidao.baidu.com/question/21216189.html
调用ifcolor函数
可以使用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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Private Sub Command1_Click()
Shell "按键精灵.exe" '调用执行程序
End Sub
这样应该可以
Shell "按键精灵.exe" '调用执行程序
End Sub
这样应该可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
他们按键的 ifcolor 效率超高。用VB写出来根本不是一个档次的速度。。。
我也遇到这个问题。。。用API还是慢,最后还是用dc
我也遇到这个问题。。。用API还是慢,最后还是用dc
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如何用VB 调用按键精灵的命令
例如象 ifcolor
findpic
不懂你说什么呢··能说详细点么
例如象 ifcolor
findpic
不懂你说什么呢··能说详细点么
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询