robot 如何获得鼠标滚轮事件
我是初学者,刚刚用robot随便随便测试了一个现实3d数据的软件,发现鼠标滚轮事件无法被录制(那个软件用鼠标滚轮放大、缩小数据)。在网上查了下。据说可以自己编写一个方法来实现这个功能。我就有一些问题。1、我查到这个网站有个帖子,网址如下。
http://bbs.51testing.com/thread-6016-1-1.html
那里边的方法我不知道怎么+到脚本中才能让脚本正确的捕获鼠标滚轮事件?
2、我有一个Win32_API.sbh文件,怎么用??
3、robot的验证点中的Region Image和windows Image总是在回放的时候比录制的时候少一个边线(或者是多一个边线,记不清了),怎么解决?而且有的时候回放的比录制的慢半拍儿?
回复 1# 的帖子
过了一个周末,还是没人。自己顶 楼主,你给的那个地址中已经将例子写的很清楚了.ConstGWL_WNDPROC=(-4)
ConstWM_COMMAND=&H111
ConstWM_MBUTTONDOWN=&H207
ConstWM_MBUTTONUP=&H208
ConstWM_MOUSEWHEEL=&H20A
dim OldwinprocAsLong
DeclareFunctionSetWindowLongLib"user32"Alias"SetWindowLongA"(ByValhWndAsLong,_
ByValnIndexAsLong,ByValdwNewLongAsLong)AsLong
DeclareFunctionCallWindowProcLib"user32"Alias"CallWindowProcA"(ByVallpPrevWndFuncAsLong,_
ByValhWndAsLong,ByValMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong
DeclareFunctionGetWindowLongLib"user32"Alias"GetWindowLongA"(ByValhWndAsLong,_
ByValnIndexAsLong)AsLong
FunctionFlexScroll(ByValhWndAsLong,ByValwMsgAsLong,ByValwParamAsLong,ByVallParamAsLong)AsLong
'支持滚轮的滚动Yu2004-5-1015:33
SelectCasewMsg
CaseWM_MOUSEWHEEL
SelectCasewParam
Case-7864320 '向下滚
SendKeys"{PGDN}"
Case7864320 '向上滚
SendKeys"{PGUP}"
EndSelect
EndSelect
FlexScroll=CallWindowProc(Oldwinproc,hWnd,wMsg,wParam,lParam)
EndFunction
以下给你的参考意见:
注意看下定义常量部份与声明的外部WINDOWS的API库文件user32 ,然后是声明库文件中的相关WINDOWS底层API函数。比如SetWindowLong函数。
如果你有了Win32_API.sbh文件的话,你的DeclareFunctionSetWindowLongLib……外部库文件声明代码即可不用在脚本中进行声明。而可以在脚本头一行用'$include 将Win32_API.sbh库声明文件包含进来。你的Win32_API.sbh文件实际上是Windows的底层API库声明文件。其中已经包含了必要的外部文件API的所有声明。这几句话请楼主好好去理解下。然后仔细的看下你的Win32_API.sbh文件的具体内容,搞清楚在robot中sbh和sbl两种库文件的关系。这种实现方法最终都是通过WINDOWS底层API提供的接口(库声明文件中声明的)以调用底层API来实现的。
至于你的图片验证点。你可以验证一个较小范围。不容易改变的区域。或者通过验证点中的蒙板工具将不确定的部份模糊验证。
回复 3# 的帖子
非常感谢你的回复,我会仔细的研究下。再次感谢。
页:
[1]