关于PC按键精灵DM.movetoex的问题?

例子:
大漠找图,找到后,赋值X,Y。
DM. movetoex x,y,10,10
这样写,鼠标不在赋值的x,y,10,10区域中移动。
但如果把DM. movetoex x,y,10,10
改成
DM.movetoex 100,100,10,10又可以在指定区域内移动。请教下大佬这个问题出在哪?

根据官方文档的介绍,DM.movetoex函数的第三、第四个参数表示鼠标移动到目标点之后再等待多少毫秒后开始模拟鼠标操作。也就是说,DM.movetoex函数的作用是移动鼠标到指定点,但是并不一定是立刻开始模拟鼠标操作。可能是您赋值的参数比较小,导致鼠标在到达目标点后立刻开始操作,所以在指定区域内移动。您可以试试调大等待时间的参数,比如改为100毫秒,看看会不会有改善。

以下是一个示例代码:

这是一个在屏幕上查找指定字符串,并在该字符串处点击鼠标左键的示例代码。当查找到字符串后,先通过DM.movetoex函数将鼠标移动到该点,再进行点击操作。在DM.movetoex函数中,第三个参数为鼠标移动到目标点后等待的时间(单位:毫秒),第四个参数为移动结束后等待的时间(单位:毫秒)。我在这里将第三个参数设为了100,也就是鼠标移动到目标点后等待100毫秒再开始操作。您可以根据您的实际需要进行调整。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2023-04-03
可能是因为您在赋值x和y时,获取到的是错误的坐标值,导致鼠标没有移动到指定区域内。检查一下赋值x和y的方法是否正确。
如果您确定赋值x和y的方法是正确的,那么可能是因为指定的坐标值与屏幕分辨率不一致,导致鼠标移动到了其他区域。您可以尝试更换其他坐标值,或者使用其他方式获取坐标值,看看问题是否得到解决。
还有就是在使用DM.movetoex函数时,先使用DM.SetPath方法设置路径,以确保鼠标可以顺利移动到指定的区域。
例如:
DM.SetPath("windows", "窗口标题", "控件名")
DM.movetoex x, y, 10, 10本回答被提问者采纳
第2个回答  2023-04-03

根据你提供的信息,可以推断出问题出在赋值的 X 和 Y 变量上。可能出现以下情况:

    变量 X 和 Y 的值不是你期望的值,导致鼠标移动到了不正确的位置。你可以使用 DM.GetCursorPos 函数获取当前鼠标的位置并打印出来,以确认 X 和 Y 的值是否正确。

    在赋值 X 和 Y 之前,大漠找图函数可能还执行了一些其他操作,导致鼠标移动到了不正确的位置。你可以尝试在赋值 X 和 Y 之前加上延时,以确保前面的操作已经完成。

    DM.movetoex 函数的第三和第四个参数分别是鼠标在指定位置的偏移量,如果它们的值不正确,可能会导致鼠标移动到错误的位置。你可以检查这两个参数的值是否正确。

    如果以上解决方法都不能解决问题,那么可能需要更多的信息才能确定问题出在哪里。你可以提供更多的代码或上下文信息,以便更好地帮助你解决问题。

第3个回答  2023-04-03
从您的描述来看,问题可能出在变量赋值或者找图功能上。请确认您的代码中是否正确地获取了目标位置的坐标值。以下是一些建议帮助您诊断和解决问题:
确保在找图成功后,您正确地获取了目标位置的坐标值。您可以使用DM.GetLastError()方法来检查找图过程中是否出现错误。
在赋值X和Y之后,使用DMClient.MessageBox()或类似的方法输出X和Y的值。这将帮助您确保X和Y的值已正确获取。
例如:
Dim x As Long, y As Long
If DM.FindPic(0, 0, 2000, 2000, "test.bmp", "000000", 0.9, 0, x, y) = 0 Then
DMClient.MessageBox "X: " & x & ", Y: " & y
DM.movetoex x, y, 10, 10
Else
DMClient.MessageBox "未找到目标图片"
End If
确保找图时的坐标范围设置正确。调整范围可能有助于提高找图的成功率。
检查找图时使用的图片和相似度阈值。确保使用的图片正确,并尝试调整相似度阈值以提高找图的成功率。
如果问题仍然存在,您可以尝试将DM组件更新到最新版本,以确保您使用的是最新的库文件。
第4个回答  2023-04-03
没有赋值啊。你要给变量赋值才行。
相似回答