企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 如何确定绝对或相对位置? 我们经常会使用 [ClickPoint](ClickPoint方法.md) 来点击按钮或输入框等控件。那么就会涉及到目标对象的坐标位置问题。例如下面的代码 ~~~ w.ClickPoint 200, 200 '点击坐标200,200 w.ClickPoint 200, 200, relative '默认就是relative,即相对模式,如果要用绝对模式就用absolute参数 ~~~ 这个坐标具体数值靠猜是不行的,靠不停调整尝试也是费时费力的,告诉你最简单的一个办法,打开qq聊天对话框,点里面的截图按钮,如果你要用相对模式,那么就从目标窗口的左上角开始往下截图,截图到目标位置停下,长宽是实时显示的,把这个坐标输入到你的代码里即可,如果用绝对模式那就从屏幕的左上角顶点开始下拉截图,到目标位置时候看下坐标是啥就好。 &nbsp; **下面以具体例子来说明下:** GetElementHwndByText 比如下面这个软件,我们想点击它里面的 **“打开串口”** 这个按钮 。我们有以下几种方法: 1. 根据按钮文字确定它然后点击,使用方法:ClickElementByText 2. 根据按钮类名确定它然后点击,使用方法:ClickElementByClassName 3. 根据按钮的坐标位置直接点击,使用方法:ClickPoint 这3种方法当然是前两种方法最好,方法3主要适用于没有句柄的按钮,比如WPF、网页等界面。我们这里就讲下如何简便的取坐标然后点击。 随便点开一个QQ聊天对话框,然后点击截图按钮: ![](https://img.kancloud.cn/b0/74/b0748d3039210c66a4e536bca77375bb_566x163.png) 这个时候从目标窗口的左上角开始截图。 ![](https://img.kancloud.cn/d1/0c/d10cf488033941b549d41847a0f65255_1356x1299.png) 我们可以看到实时的长宽(250x684),这个长宽就可以看做相对于窗口左顶点的坐标。那么我们就可以写代码: `w.ClickPoint 250, 684` 等价于: `w.ClickPoint 250, 684, relative` &nbsp; &nbsp; 如果要用绝对坐标,也就是相对于桌面的左上角开始截图,那么就要带上absolute参数,看下面的截图: ![](https://img.kancloud.cn/3d/86/3d864571d9c901c14f776337e64731b4_1377x1296.png) 可以看到实时的长宽为(311x951),那么我们就可以写代码: `w.ClickPoint 311, 951, absolute` 完整代码为: ~~~ If w.GetWindowByTitleEx("sscom4.2测试版").hWnd <> 0 Then w.ClickPoint 250, 684 '推荐 '// w.ClickPoint 250, 684, relative '与上一行代码效果同等 '// w.ClickPoint 311, 951, absolute '采用绝对模式,同等效果 End If ~~~ 小提示:推荐使用relative方法,也就是相对本窗口的方式,因为程序窗口相对于桌面中的位置不固定的,这样你的代码就没有通用性,窗口拖动下你用absolute绝对模式的话就点不到按钮了,用相对模式的话随便你拖动到哪儿都可以点击。当然有些程序是全屏的,比如游戏之类,具体还是看使用场景了。