3

私は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

CTRL + ALT + CMD+Tでアクティブ化するように設定されたAlfred拡張機能にポップしました。

残念ながら、それは少し不格好です。昨日まで私はApplescriptに触れたことがなかったので、私のチョップが少し貧弱であるのではないかと心配しています。Billingsウィンドウが一時的に前面に表示され、その後再び非表示になります。また、キーボードでH以外の修飾キーが押されても非表示になりません。

したがって:

  • それがポップアップしないようにビリングを呼び出すためのより良い方法はありますか?
  • そうでない場合は、それを非表示にして、フォーカスがあった前のアプリケーションに戻るためのより良い方法がありますか。

わかりやすくするために編集: Billingsは、OSXのフリーランスの時間追跡および請求パッケージです。タイマーを使用して各タスクに費やした時間を追跡し、クライアントに正確に請求できるようにします。個人的にはとても便利だと思います。タイマー(現在作業中のアイテム)がメニューバーに表示され、マウスをクリックすることで切り替えることができます。Billingsがフォアグラウンドにない場合は、キーボードショートカットを使用して簡単に開始および停止できるのが理想的ですが、そのための機能は組み込まれていません。次のようになります。タイマーの写真

4

2 に答える 2

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
于 2012-05-17T19:41:50.810 に答える
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
于 2012-05-17T15:55:48.233 に答える