我正在将Applescript与Alfred结合使用,以便在Billings中提供启动和停止计时器的键盘快捷键。这对我跟踪自由职业的工作非常有用。
这是我正在使用的代码:
tell application "Billings" to activate
tell application "System Events"
tell process "Billings"
tell menu bar 1
tell menu bar item "Slips"
tell menu "Slips"
if menu item "Start Timer" exists then
click menu item "Start Timer"
else
click menu item "Stop Timer"
end if
end tell
end tell
end tell
keystroke "h" using {command down}
end tell
end tell
我将它弹出到一个Alfred扩展集中,用CTRL + ALT + CMD + T激活。
不幸的是,它有点笨重。在昨天之前,我从未碰过过Applescript,所以我担心我的排骨有点差。 Billings窗口暂时弹出到前景,然后再次隐藏。如果键盘上按下了除H之外的任何修改键,它也不会隐藏。
因此:
为清晰起见编辑 比林斯是一个OSX自由职业时间跟踪和发票包。我使用计时器来跟踪我在每项任务上花费的时间,以便我可以准确地向我的客户开账单。我个人认为它非常有用。计时器(我正在处理的当前项目)显示在菜单栏中,可以通过鼠标点击切换。理想情况下,当Billings不在前台时,我可以使用键盘快捷键轻松启动和停止它,但没有内置功能。它看起来像这样:
答案 0 :(得分:4)
这是一个将应用程序保留在后台的解决方案。
-- no activate
tell application "System Events"
tell group 1 of group 2 of window "Billings" of process "Billings"
perform action "AXPress" of (get first button whose its name ends with " Timer")
end tell
end tell
-
如果它不起作用,这里的解决方案是隐藏应用程序而不使用快捷方式
activate application "Billings"
tell application "System Events"
tell process "Billings"
tell menu "Slips" of menu bar item "Slips" of menu bar 1
click (get first menu item whose its name ends with " Timer")
end tell
set visible to false
end tell
end tell
答案 1 :(得分:2)
这是另一种方法:
tell application "System Events" to set xxx to (1st process whose frontmost is true)
activate application "Billings"
tell application "System Events"
tell process "Billings"
click menu item 7 of menu 1 of menu bar item 7 of menu bar 1
if visible then
set visible to false
end if
end tell
end tell
set frontmost of xxx to true