51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9707|回复: 20
打印 上一主题 下一主题

[原创] 如何获得鼠标点击的坐标

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-5-23 17:25:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题所示:我现在需要找到鼠标点击菜单后,鼠标的位置,其实我就是需要找到当前鼠标点击的菜单的位置。但是因为听说菜单的属性里没有XY坐标和width height,所以就想用鼠标的位置来代替。

不知道用什么函数可以求得返回值呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2007-5-23 17:45:33 | 只看该作者
用那个画图工具可以解决你的问题,你是不是就想得到坐标是吧
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2007-5-23 20:19:45 | 只看该作者
什么画图工具阿?我初学者不懂啊。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2007-5-24 09:57:25 | 只看该作者
听说菜单的属性里没有XY坐标?很疑惑...(为什么是听说呢?)
楼主假如只想在固定位置做点击操作,就用低级别的录制模式可以实现.
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2007-5-24 11:29:52 | 只看该作者
object.Click [X], [Y], [BUTTON]

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).
按照这个函数打参数就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2007-5-24 11:30:16 | 只看该作者
X和Y就是鼠标点击的坐标
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2007-5-24 13:06:24 | 只看该作者
谢谢楼上的朋友,但是我不是input值,我是要取得鼠标点击后的返回值。
就是脚本运行过程中,返回鼠标坐标给程序中的变量x,y,然后我要用x,y的值传给后面的函数作参数。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2007-5-24 15:44:01 | 只看该作者
返回鼠标坐标给程序中的变量x,y,然后我要用x,y的值传给后面的函数作参数。

help...
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2007-5-24 17:23:37 | 只看该作者
今天快下班了,明天继续帮你看看
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2007-5-25 09:26:44 | 只看该作者
我看起来帮不了你了,试过了,不行,帮助手册也没有相关的函数
期待高手出现。。。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2007-5-25 15:30:29 | 只看该作者
虽然没有找到解决方法,但大家的热心帮助我现在这里说声谢谢了。

一直答案寻找中。。。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2007-12-3 21:31:51 | 只看该作者
    一般来说,对象的属性里面都有 x,y 这两个属性,还有 abs_x  abs_y呀。既然是做测试的,为什么还要“听说”呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2007-12-3 21:32:32 | 只看该作者
    莫非你需要的 是 GetROProperty  函数?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2007-12-3 22:32:05 | 只看该作者
    版主,你理解错了。LZ要返回鼠标位置坐标。我查了一下API,GetcusorPos返回值有一个是结构参数。而QTP中不支持使用结构参数的windows api.这个似乎是有点麻烦。

    Syntax

        BOOL GetCursorPos(      
            LPPOINT lpPoint
        );

    Parameters

        lpPoint
            [out] 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.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

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

    使用道具 举报

    该用户从未签到

    16#
    发表于 2007-12-3 22:52:31 | 只看该作者
    好像都没能准确得到LZ要的答案阿,楼上各位确实是一个思路,但有没有更好的方法呢?
    我现在也需要返回鼠标点击的坐标,用于后续脚本的操作,大家再讨论讨论阿!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2007-12-4 01:19:48 | 只看该作者
    原帖由 jifeng 于 2007-12-3 22:52 发表
    好像都没能准确得到LZ要的答案阿,楼上各位确实是一个思路,但有没有更好的方法呢?
    我现在也需要返回鼠标点击的坐标,用于后续脚本的操作,大家再讨论讨论阿!


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

    使用道具 举报

    该用户从未签到

    18#
    发表于 2007-12-4 09:19:08 | 只看该作者
    哈哈越说越远啦
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2007-12-4 10:49:21 | 只看该作者
    你是想执行按座标位置点击鼠标?
    还是取到鼠标当前座标?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-7-2 11:59:35 | 只看该作者
    我觉得如果QTP不行的话  不如拿c#写个dll获取鼠标的xy坐标  这样不是解决了么
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-10-2 12:36 , Processed in 0.117398 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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