AppleScriptはAutomatorで動くが、ショートカットから起動すると失敗する


2

AutomatorでRun AppleScriptを使用したサービスには、次のAppleScriptがあります。

on run {input, parameters}
    set date_ to short date string of (current date)
    tell application "System Events"
        keystroke date_
    end tell
end run

どのアプリケーションでも入力を受け取らないように設定されており、出力はテキストを置き換えます。 Automatorの編集ウィンドウにカーソルを置いて実行ボタンをクリックすれば、それは機能し、私は出力を得る、例えば:

...
end run8/15/18

これをキーボードショートカットにバインドしました([システムのプロパティ] - > [キーボード] - > [ショートカット] - >スクリプトを選択してキーの組み合わせをバインドします)。しかし、アプリケーションに関係なく、キーの組み合わせを押すと、少し(1〜2秒)メニューバーに少し回転する歯車が表示され、コンソールに次のエラーが表示されます。

<の不足している制約を検出しました。非公開>サイズと原点を完全に定義するのに十分な制約がないため、配置できません。足りない制約を追加するか、またはtranslatesAutoresizingMaskIntoConstraints = YESを設定すると、制約が自動的に生成されます。このビューがMacOS 10.12以降で手動でレイアウトされている場合は、オーバーライドから[スーパーレイアウト]を呼び出さないように選択できます。デバッグするためにDETECTED_MISSING_CONSTRAINTSにブレークポイントを設定します。このエラーは一度だけ記録されます。

日付が私がこれをするどんなアプリケーションにも追加されません。私はここで同様の問題を抱えているもう一人の人を見ました( https://www.alfredforum.com/topic/10311-applescripts-no-longer-work-script-editor-hangs-not-responding-on-sierra/ )しかし彼らはまた答えを得なかった。これはウィンドウのレンダリングに関連しているように思われるので、わかりにくいですが、私のスクリプトAFAIKにはGUI要素がありません。

私は走っています:

Mac OS Sierra 10.12.6 (16G1510)
Automator Version 2.7 (428)

わかりました、この記事のために調査している間私はこの記事を見つけました( https://superuser.com/questions/153890/assign-a-shortcut-to-running-a-script-in-os-x/264943 それはSnow Leopardの後にシステムサービスを実行することを妨げるバグがあると主張します。誰もがサードパーティ製のツールなしで回避策を知っていますか?

回答:


1

AppleScriptを別のアプリケーションとして保存してから、そのアプリケーションを起動するAutomator Serviceを作成することで、うまく機能させることができました。手順は次のとおりです。

  • Script Editorで新しいAppleScriptを作成し、次のコードを貼り付けます(自分のものですが、少し追加したものです)。

    on run
        set date_ to short date string of (current date)
        tell application "System Events"
            set visible of (first process where it is frontmost) to false -- return focus to initiating app
            delay 0.1 -- make sure the application has had time to regain focus—if the script doesn't work, try upping this value a little
            keystroke date_
        end tell
    end run
    
  • としてスクリプトを保存します Application

  • Automatorで新しいサービスを作成して Launch Application アクション。スクリプトエディタから保存したアプリケーションにアプリケーションを設定します。
  • キーボードショートカットをそのAutomatorアクションにリンクします。

私はそれがSierra上で動作することを確認することはできませんが、High Sierra 10.13.6上で動作しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.