51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 4212|回复: 3
打印 上一主题 下一主题

[Robot] robot 如何获得鼠标滚轮事件

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2009-9-18 14:19:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我是初学者,刚刚用robot随便随便测试了一个现实3d数据的软件,发现鼠标滚轮事件无法被录制(那个软件用鼠标滚轮放大、缩小数据)。在网上查了下。据说可以自己编写一个方法来实现这个功能。我就有一些问题。
1、我查到这个网站有个帖子,网址如下。
http://bbs.51testing.com/thread-6016-1-1.html
那里边的方法我不知道怎么+到脚本中才能让脚本正确的捕获鼠标滚轮事件?
2、我有一个Win32_API.sbh文件,怎么用??
3、robot的验证点中的Region Image和windows Image总是在回放的时候比录制的时候少一个边线(或者是多一个边线,记不清了),怎么解决?而且有的时候回放的比录制的慢半拍儿?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2009-9-21 09:09:07 | 只看该作者

回复 1# 的帖子

过了一个周末,还是没人。自己顶
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2009-9-22 11:04:29 | 只看该作者
楼主,你给的那个地址中已经将例子写的很清楚了.
Const  GWL_WNDPROC  =  (-4)  
Const  WM_COMMAND  =  &H111  
Const  WM_MBUTTONDOWN  =  &H207  
Const  WM_MBUTTONUP  =  &H208  
Const  WM_MOUSEWHEEL  =  &H20A  

dim Oldwinproc  As  Long  

Declare  Function  SetWindowLong  Lib  "user32"  Alias  "SetWindowLongA"  (ByVal  hWnd  As  Long,  _  
ByVal  nIndex  As  Long,  ByVal  dwNewLong  As  Long)  As  Long  
Declare  Function  CallWindowProc  Lib  "user32"  Alias  "CallWindowProcA"  (ByVal  lpPrevWndFunc  As  Long,  _  
ByVal  hWnd  As  Long,  ByVal  Msg  As  Long,  ByVal  wParam  As  Long,  ByVal  lParam  As  Long)  As  Long  
Declare  Function  GetWindowLong  Lib  "user32"  Alias  "GetWindowLongA"  (ByVal  hWnd  As  Long,  _  
ByVal  nIndex  As  Long)  As  Long  
Function  FlexScroll(ByVal  hWnd  As  Long,  ByVal  wMsg  As  Long,  ByVal  wParam  As  Long,  ByVal  lParam  As  Long)  As  Long  
'支持滚轮的滚动  Yu  2004-5-10  15:33  
                 Select  Case  wMsg  
                               Case  WM_MOUSEWHEEL  
                                       Select  Case  wParam  
                                                     Case  -7864320    '向下滚  
                                                               SendKeys  "{PGDN}"  
                                                     Case  7864320      '向上滚  
                                                               SendKeys  "{PGUP}"  
                                       End  Select        
                 End  Select  
                 FlexScroll  =  CallWindowProc(Oldwinproc,  hWnd,  wMsg,  wParam,  lParam)  
End  Function

以下给你的参考意见:
注意看下定义常量部份与声明的外部WINDOWS的API库文件user32 ,然后是声明库文件中的相关WINDOWS底层API函数。比如SetWindowLong函数。
如果你有了Win32_API.sbh文件的话,你的Declare  Function  SetWindowLong  Lib……  外部库文件声明代码即可不用在脚本中进行声明。而可以在脚本头一行用'$include 将Win32_API.sbh库声明文件包含进来。你的Win32_API.sbh文件实际上是Windows的底层API库声明文件。其中已经包含了必要的外部文件API的所有声明。这几句话请楼主好好去理解下。然后仔细的看下你的Win32_API.sbh文件的具体内容,搞清楚在robot中sbh和sbl两种库文件的关系。这种实现方法最终都是通过WINDOWS底层API提供的接口(库声明文件中声明的)以调用底层API来实现的。
至于你的图片验证点。你可以验证一个较小范围。不容易改变的区域。或者通过验证点中的蒙板工具将不确定的部份模糊验证。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
 楼主| 发表于 2009-9-25 15:53:28 | 只看该作者

回复 3# 的帖子

非常感谢你的回复,我会仔细的研究下。再次感谢。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-27 14:10 , Processed in 0.071021 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表