VB 调用按键精灵的命令

如何用VB调用按键精灵的命令例如象ifcolorfindpic等的...请高手指点下...把例子写下..因为是菜鸟.所以能详细的尽量详细下.谢谢!!... 如何用VB 调用按键精灵的命令
例如象 ifcolor
findpic

等的...请高手指点下...把例子写下..因为是菜鸟.所以能详细的尽量详细下.谢谢!!
展开
 我来答
ljl88900
推荐于2016-04-18 · TA获得超过2661个赞
知道大有可为答主
回答量:2197
采纳率:100%
帮助的人:2630万
展开全部
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 可以找到,但相对速度降低了一些.
glx110
2009-01-29 · TA获得超过1071个赞
知道小有建树答主
回答量:356
采纳率:0%
帮助的人:302万
展开全部
我不会,这是抄的,只找到这么点,如果可以的话,也许能明白怎么调用其他函数吧
*******************************
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1f87734
2009-02-02 · 超过41用户采纳过TA的回答
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:119万
展开全部
Private Sub Command1_Click()
Shell "按键精灵.exe" '调用执行程序
End Sub
这样应该可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mm304321141
2009-02-09 · 超过31用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:99.4万
展开全部
他们按键的 ifcolor 效率超高。用VB写出来根本不是一个档次的速度。。。
我也遇到这个问题。。。用API还是慢,最后还是用dc
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梦断难寻VIP
2009-02-02 · 超过14用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:0
展开全部
如何用VB 调用按键精灵的命令
例如象 ifcolor
findpic

不懂你说什么呢··能说详细点么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式