51Testing软件测试论坛

标题: robot对鼠标滚轮的识别 [打印本页]

作者: sharpwood    时间: 2004-12-7 15:43
标题: robot对鼠标滚轮的识别
robot能对鼠标滚轮识别吗?

需要设置什么?

我这里识别不了。
作者: pcl2004_27    时间: 2004-12-7 15:54
鼠标滚轮?
楼主这需要识别么

能不能把你的需求说出来!
作者: sharpwood    时间: 2004-12-7 15:58
我在一个类似Auto CAD的图形平台里面,滚动鼠标滚轮可以缩小或放大图形,但是robot识别不了。
作者: pcl2004_27    时间: 2004-12-7 16:28
对图形程序进行自动化脚本开发,一般用坐标的方式录制脚本

而且识别对象是需要结合你开发的语言,不能孤立的看待问题
作者: sharpwood    时间: 2004-12-7 16:40
我是用坐标方式的,但是它识别不了鼠标滚轮滚动这个事件。

[ Last edited by sharpwood on 2004-12-7 at 16:42 ]
作者: xalee    时间: 2004-12-7 17:11
Robot无法识别鼠标滚轮,如果确实需要的话可能需要调用相关的api了。
作者: sharpwood    时间: 2004-12-7 20:01
在robot中怎么调用api以支持滚轮的滚动,请大虾指教。
我很需要相关的材料。
作者: pcl2004_27    时间: 2004-12-8 09:29
实现应用程序支持鼠标滚轮的关键是,捕获鼠标滚轮的消息 MSH_MOUSEWHEEL、WM_MOUSEWHEEL。其中MSH_MOUSEWHEEL是为95准备的,需要Intellimouse驱动程序,而WM_MOUSEWHEEL是目前各版本Windows(98/NT40/2000)内置的消息。本文主要处理WM_MOUSEWHEEL消息。下面是WM_MOUSEWHEEL的语法。

WM_MOUSEWHEEL
    fwKeys = LOWORD(wParam); /* key flags */  
    zDelta = (short) HIWORD(wParam);  
/* wheel rotation */
    xPos = (short) LOWORD(lParam);  
/* horizontal position of pointer */
    yPos = (short) HIWORD(lParam);  
/* vertical position of pointer */  
---- 其中:fwKeys指出是否有CTRL、SHIFT、鼠标键(左、中、右、附加)按下,允许复合。zDelta传递滚轮滚动的快慢,该值小于零表示滚轮向后滚动(朝用户方向),大于零表示滚轮向前滚动(朝显示器方向)。lParam指出鼠标指针相对屏幕左上的x、y轴坐标。  
---- 滚轮按钮相当于普通的三键鼠标的中键,根据滚轮按钮的动作,Windows分别发出WM_MBUTTONUP、WM_MBUTTONDOWN、WM_MBUTTONDBLCLK消息,这些消息
作者: pcl2004_27    时间: 2004-12-8 09:31
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
以上代码为支持鼠标滚动的代码(没有经过调试)
作者: sharpwood    时间: 2004-12-8 09:55
我录制的时候怎么支持滚轮呢?

这些代码要写到什么地方?
作者: xalee    时间: 2004-12-8 09:58
Robot不支持滚轮,所以无法录制。

建议把鼠标滚轮的操作封装为一个函数,在需要的地方进行调用。
作者: sharpwood    时间: 2004-12-8 13:54
录制的时候真的无法支持吗?
作者: dionysus    时间: 2004-12-12 14:38
好像robot对一些鼠标的操作就是支持不好,你可以试一下testcomplete3.0
作者: sharpwood    时间: 2004-12-12 18:52
testcomplete 哪儿有下载的,请教。
作者: dionysus    时间: 2004-12-12 19:06
testcomplete你可以搜一下,不过好像目前能找到的都是Demo版,不过这个软件不贵,正版才几千块钱,我们公司已经去联系买正版了
作者: sharpwood    时间: 2004-12-12 19:52
我搜索了,天天精品上面有,但是下不了,不过有注册码。

我下载了一个demo版的,但是没有地方能输注册码。

demo版的怎样?和robot比有哪些优势?
作者: sharpwood    时间: 2005-11-16 20:13
up
作者: tomzhang    时间: 2005-12-22 13:46
hao dongdong,识别滚动轴




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2