2

我使用Time Tracker For Mac作为我的时间跟踪器。它有一个菜单栏项,我希望能够通过键盘快捷键访问它。

我找到了一种使用 GUI 脚本单击该项目的方法:

tell application "System Events" to tell process "Time Tracker"
    click menu bar item of menu bar 2
end tell

不幸的是,除非我在菜单上操作(即按 Enter 或 Esc 键),否则脚本不会返回成功。所以如果我想触发向下箭头键...

tell application "System Events" to tell process "Time Tracker"
    click menu bar item of menu bar 2
    -- hangs here forever until menu is closed
    tell application "System Events" to key code 124
end tell

脚本只是永远等待。如果我点击转义菜单栏项关闭,然后才会触发向下箭头键。

有点奇怪。我只需要单击菜单栏项就不会阻止进一步的脚本执行。

有什么建议么?

4

2 回答 2

2

对我来说,单击命令在大约 5 秒后返回。一种解决方法是使用忽略应用程序响应并终止系统事件:

ignoring application responses
    tell application "System Events" to tell process "Time Tracker"
        click menu bar item 1 of menu bar 2
    end tell
end ignoring
do shell script "killall System\\ Events"
delay 0.1
tell application "System Events" to tell process "Time Tracker"
    tell menu bar item 1 of menu bar 2
        click menu item 2 of menu 1
    end tell
end tell

相关问题:

于 2013-05-21T16:55:52.080 回答
1

实际上,向下箭头的键码似乎是 125。试试这个:

tell application "System Events" to tell process "Time Tracker"
    click menu bar item of menu bar 2
    key code 125
    key code 36
end tell

单击菜单栏...命令后有短暂的延迟(几秒钟),我不知道为什么。

于 2013-05-21T15:36:40.090 回答