【发布时间】:2019-06-11 19:57:39
【问题描述】:
我正在尝试在屏幕的某个位置自动点击。我找到了几个问题的答案,但没有一个对我有帮助。
这个命令应该验证“Spotify”(它是一个随机的应用程序,只是为了做一个测试)是否在最前面。如果这是真的,它应该点击屏幕的某个位置(在这种情况下,鼠标的位置在“播放”按钮上)。 我运行程序,一切正常。但是当我把应用程序放在前台时,什么也没有发生。程序以“Result: 1”结束
set x to 0
repeat until x is equal to 1
tell application "System Events"
if frontmost of application "Spotify" is true then
delay (2)
tell application "System Events"
click at {720, 634}
end tell
set x to 1
end if
end tell
end repeat
我也尝试过一些“延迟”,但它们一直没用。
【问题讨论】:
-
如果 your 应用程序在前台,那么根据定义,任何其他应用程序都不会。系统事件仅针对最前面的应用程序,因此为了编写 GUI 脚本,您首先需要通过激活它将所需的应用程序置于最前面,然后获取所需元素相对于前窗口(或任何 UI)的名称或位置对象包含它)。
-
我当然做到了。我移动了“Spotify”窗口,以便将“播放”按钮放置在 {720, 634}(我忘了在代码中添加坐标)。在这个程序之前,还有一个将“Finder”移到前台。然后它开始检查“Spotify”是否在前台。在这种情况下,我必须单击“Spotify”图标并将应用程序置于前台。最后,程序给了我“结果:1”(所以它起作用了),但是“播放”按钮没有被按下。
标签: applescript