金城月 发表于 2007-5-23 17:25:38

如何获得鼠标点击的坐标

如题所示:我现在需要找到鼠标点击菜单后,鼠标的位置,其实我就是需要找到当前鼠标点击的菜单的位置。但是因为听说菜单的属性里没有XY坐标和width height,所以就想用鼠标的位置来代替。

不知道用什么函数可以求得返回值呢?

wssgily 发表于 2007-5-23 17:45:33

用那个画图工具可以解决你的问题,你是不是就想得到坐标是吧

金城月 发表于 2007-5-23 20:19:45

什么画图工具阿?我初学者不懂啊。

风过无息 发表于 2007-5-24 09:57:25

听说菜单的属性里没有XY坐标?很疑惑...(为什么是听说呢?)
楼主假如只想在固定位置做点击操作,就用低级别的录制模式可以实现.

yuandjing 发表于 2007-5-24 11:29:52

object.Click , ,

object: A test object of type WinButton.
X:Optional. An Integer value.
The x-coordinate of the click. Note that the specified coordinates are relative to the upper left corner of the object.Default = micNoCoordinate (-9999) -- center of the object.
Y:Optional. An Integer value.
The y-coordinate of the click. Note that the specified coordinates are relative to the upper left corner of the object.Default = micNoCoordinate (-9999) -- center of the object.

Tip: You can enter micNoCoordinate (-9999) for the x and y argument values if you want to enter a value for the button argument without specifying x- and y- coordinates for the click. micNoCoordinate indicates the center of the object.

BUTTON: Optional. A predefined constant or number. See the Constants table, below.
The mouse button used to click the object. Default = micLeftBtn (0).
按照这个函数打参数就可以了

yuandjing 发表于 2007-5-24 11:30:16

X和Y就是鼠标点击的坐标

金城月 发表于 2007-5-24 13:06:24

谢谢楼上的朋友,但是我不是input值,我是要取得鼠标点击后的返回值。
就是脚本运行过程中,返回鼠标坐标给程序中的变量x,y,然后我要用x,y的值传给后面的函数作参数。

金城月 发表于 2007-5-24 15:44:01

返回鼠标坐标给程序中的变量x,y,然后我要用x,y的值传给后面的函数作参数。

help...

yuandjing 发表于 2007-5-24 17:23:37

今天快下班了,明天继续帮你看看

yuandjing 发表于 2007-5-25 09:26:44

我看起来帮不了你了,试过了,不行,帮助手册也没有相关的函数
期待高手出现。。。

金城月 发表于 2007-5-25 15:30:29

虽然没有找到解决方法,但大家的热心帮助我现在这里说声谢谢了。

一直答案寻找中。。。

walker1020 发表于 2007-12-3 21:31:51

一般来说,对象的属性里面都有 x,y 这两个属性,还有 abs_xabs_y呀。既然是做测试的,为什么还要“听说”呢?

walker1020 发表于 2007-12-3 21:32:32

莫非你需要的 是 GetROProperty函数?

gy21st 发表于 2007-12-3 22:32:05

版主,你理解错了。LZ要返回鼠标位置坐标。我查了一下API,GetcusorPos返回值有一个是结构参数。而QTP中不支持使用结构参数的windows api.这个似乎是有点麻烦。

Syntax

    BOOL GetCursorPos(      
      LPPOINT lpPoint
    );

Parameters

    lpPoint
       Pointer to a POINT structure that receives the screen coordinates of the cursor.

Return Value

    Returns nonzero if successful or zero otherwise. To get extended error information, call GetLastError.

xazaj 发表于 2007-12-3 22:39:03

不知道你为什么要获得这个坐标,是不是你点击菜单的操作无法回放呢? 还有一些二级菜单也会出现录制无法回放,并且不能获取对象,这些都有其他解决办法的!如果事实是这样,就不要走下面的弯路了!
    如果你确实需要坐标,我这里有两个解决方案,也许能用上,我没验证:
方案一:使用low level record 录制一下这里的操作,后面会直接给出当前操作的坐标;
方案二:使用GetTextLocation 方法,把TextToFind 属性设置成你需要获取坐标处的字符,他会给你返回标准的坐标值。

    建议使用第二种方法获取,这个返回的坐标值应该可以赋予其他变量使用!
    只是给你一些解决方案!希望能帮上忙!

jifeng 发表于 2007-12-3 22:52:31

好像都没能准确得到LZ要的答案阿,楼上各位确实是一个思路,但有没有更好的方法呢?
我现在也需要返回鼠标点击的坐标,用于后续脚本的操作,大家再讨论讨论阿!

gy21st 发表于 2007-12-4 01:19:48

原帖由 jifeng 于 2007-12-3 22:52 发表 http://bbs.51testing.com/images/common/back.gif
好像都没能准确得到LZ要的答案阿,楼上各位确实是一个思路,但有没有更好的方法呢?
我现在也需要返回鼠标点击的坐标,用于后续脚本的操作,大家再讨论讨论阿!

你如果确实想要光标的具体坐标,并不是很麻烦的。不过要多动几下手了。
思路很简单。用其他高级语言,最好是c或c++生成一个动态库,把winapi函数GetCursorPos再包装一下,返回两个值,即坐标X和Y,而不是一个结构。这样QTP就支持了。 动态库注册一下,再用extern.declare声明DLL中包装过函数。这样QTP中就可以调用了。

pxwcypx 发表于 2007-12-4 09:19:08

哈哈越说越远啦:)

板砖 发表于 2007-12-4 10:49:21

你是想执行按座标位置点击鼠标?
还是取到鼠标当前座标?

423799223 发表于 2008-7-2 11:59:35

我觉得如果QTP不行的话不如拿c#写个dll获取鼠标的xy坐标这样不是解决了么
页: [1] 2
查看完整版本: 如何获得鼠标点击的坐标