原创日志转载请标明出处与连接! 大家的支持是我的动力!_______卢晨之 (luchenzhi@21cn.com/@hotmail.com)

【如何在Windows Logout状态下点击鼠标?】

上一篇 / 下一篇  2010-04-05 01:26:49 / 个人分类:Win32-API

【如何在Windows Logout状态下点击鼠标?】

{)Y/WE,ov&Y0

作者:卢晨之

iS"Y8V y!N p0

转载请注明

l3ovK:l H4z:H;v(z'Du^:W0

      在QTP的脚本中,部分窗口或者按钮的点击,我们录制时候是使用的WinObject.Click方法,但或者也是遵循自动化测试的原则,QTP在实现这个方法的时候基本都是采用MoveMouse与Mouse Click的方法去做,而在某些情况下,这种方法是会失效的。

8t\}rh:x9@4d0

      而有趣的是,在Web测试领域方面,QTP中包括Click Link,Click WebButton等方法都是采用了发送消息的方法去实现,也就是调用了DOM去实现而非前台的MoveMouse之类的方法;SAP的实现方法也一样,调用了SAP自带的接口与方法,也是使用了后台发送消息的方法。所以对于使用QTP老鸟们来说,或者会遇到在Windows 待机或者LogOut的状态下,对IE的Popup处理得很不好。而如果有读过小编前面写的【Python 操作IE的弹出窗口】,应该看到里面点击按钮的方法使用的不是move Mouse与Click Mouse的组合,取而代之的是Win32中的SendMessage。而这个方法的好处也就是在LogOut或者非Active状态下都能被点击到。

[6F[LsP051Testing软件测试网P^V1ofOmF

Extern.Declare micvoid,"SendMessage","user32.dll","SendMessage",micHwnd,miclong,miclong,miclong
)u dZfjnS6GV#f0Const  WM_MOUSEMOVE  =  &H200 
EUJ8E?)GP{0Const  WM_MOUSEACTIVATE  =  &H21 
F8Y*Uu^#nhB0Const  WM_MOUSEFIRST  =  &H200 
:asNb |Jm4mS0Const  WM_MOUSELAST  =  &H209 51Testing软件测试网8Bs$?2Uz t4fd
Const  WM_LBUTTONUP  =  &H202 51Testing软件测试网7p+}*g|)x:Njg
Const  WM_LBUTTONDOWN  =  &H201 51Testing软件测试网7~ P^3wDjz;gK+o
Const  WM_LBUTTONDBLCLK  =  &H203 51Testing软件测试网\.LM-]|X+Db
Const  WM_RBUTTONUP  =  &H205 51Testing软件测试网L'|Pkei3o
Const  WM_RBUTTONDOWN  =  &H204 
,p3U ])b%J8G4j/t0Const  WM_RBUTTONDBLCLK  =  &H206 

+i'A#laomnhb051Testing软件测试网"I3uiT['Uv x:zd-z0w

hwnd=Browser("Browser").Dialog("Microsoft Internet Explorer").WinButton("确定").GetROProperty("Hwnd")51Testing软件测试网h;A-{ sL_
Extern.SendMessage hwnd,WM_LBUTTONDOWN,WM_MOUSEACTIVATE,0
SnR#D;J4O0V&Y0Extern.SendMessage hwnd,WM_LBUTTONUP,0,051Testing软件测试网$EEl7t1Ex*f
Extern.SendMessage hwnd,WM_LBUTTONDOWN,WM_MOUSEACTIVATE,0
9r[,Ez\1a0Extern.SendMessage hwnd,WM_LBUTTONUP,0,0

NS,Q$Se*k;I'S0

2EtDB,r0'代码中发送2次同样的消息是为了更稳定的点击到这个对象。

LxR~7o7r0

       我们使用SendMessage这个方法后,即使在LogOut的状态下,我们也能操作WinObject的对象,而不仅仅局限于SAP,WEB的程序。

*bS&@MX ~0

TAG: 右键 QTP qtp 待机 待机 LogOut 注销 未登陆 鼠标 点击

 

评分:0

我来说两句

Open Toolbar