2016-05-30 6 views
0

実行中:OSX 10.11.3AppleScript(.scpt)はTorブラウザが実行中の場合ですか?

以下のスクリプトがあります。 Firefoxのウィンドウの選択されたテキストと現在のURLに基​​づいてhtmlリンク文字列を構築するのは素朴なハックです。それは壊れやすいが、うまくいく。私は、Firefoxに加えて実行されているTor Browserを持っており、Script Editorでスクリプトを開くと

はしかし、私はコードがTor Browserを参照するように変更されていることを参照してください。

tell application "TorBrowser" to activate 

む〜! Tor BrowserはFirefoxをベースにしていますが、独自のプロセスID(Activity Monitorで確認済み)があるようです。それがなかったとしてもなぜコードは変更されていますか? Torのブラウザ実行せずに

  • :は、私はこの何度もテストしてみたコードは、私がスクリプトエディタでそれを閉じた後、それが変更されていないその「変更日」に基づいて
  • は変更されません。 (11:10に保存し、11:12まで開いたままにしておきます)
  • 重複したスクリプト。 Tor Browserを起動して1つのコピーを起動します:スクリプトが変更されました。 Torブラウザーを終了し、第2のコピーを起動します。スクリプトは変更されません。変更されたファイルを閉じるときに、そのファイルを保存するプロンプトは表示されません。

何が起こっているのか分かりませんか?これは非常に奇妙なようです。回避策はありますか?


tell application "Firefox" to activate 
delay 0.3 

tell application "System Events" 

    tell process "Firefox" 
     keystroke "c" using command down 
     delay 0.1 
    end tell 
    set theHeadline to the clipboard 

    delay 1 
    tell process "Firefox" 
     keystroke "l" using command down 
     delay 0.1 
     keystroke "c" using command down 
     delay 0.1 

     set theUrl to the clipboard 
    end tell 

    set tagStart to "<a href =" 
    set tagMiddle to "><b><u>" 
    set tagEnd to "</u></b></a>" 

    set tag to tagStart & "\"" & theUrl & "\"" & tagMiddle & theHeadline & tagEnd 

    set the clipboard to tag 

end tell 

答えて

1

でこれを書いて、書式設定を許してください、とCFBundleSignatureは "MOZB" で、多分これがこの問題を引き起こすかもしれない。これを避けるために

、スクリプトでアプリケーションのバンドル識別子を使用します。

tell application "System Events" 
    tell (first process whose its bundle identifier is "org.mozilla.firefox") 
     keystroke "c" using command down 
     delay 0.1 
    end tell 
end tell 

tell application id "org.mozilla.firefox" to activate 
-- the bundle identifier of the "Tor Browser" application is "org.mozilla.tor browser" 
プロセスの名前が同じであるため

、これを使用します

0

まず、私はあなたのスクリプトに簡単な変更のカップルをお勧めします。システムイベントを扱っているときは、システムイベントブロック内でtellプロセスを使用する必要はありません。

tell application "Firefox" to activate 
delay 0.3 

tell application "System Events" 
    keystroke "c" using command down 
    delay .1 
    set theHeadline to the clipboard 
    keystroke "l" using command down 
    delay 0.1 
    keystroke "c" using command down 
    delay 0.1 
    set theUrl to the clipboard 
end tell 

set tagStart to "<a href =" 
set tagMiddle to "><b><u>" 
set tagEnd to "</u></b></a>" 

set tag to tagStart & "\"" & theUrl & "\"" & tagMiddle & theHeadline & tagEnd 

set the clipboard to tag 

end tell 

戻るあなたの元の質問に、あなたのコンパイラ(スクリプトエディタ)は、あなたの間違いを修正しようとしています。あなたがTorを意味していると仮定します。あなたと私はあなたが本当にFireFoxを意味するのを知っていますが、あなたが間違いを犯したと仮定します。良いニュースは、コンパイルしてアプリとして保存することです。これは問題ではありません。あなたがTorを実行していないことをコンパイルして保存するときには必ず確認してください。あなたはうまくいくはずです。

Btw ... FireFoxをFoxFireなどに変更する場合は、同様の動作が表示されます。通常、アプリケーションの選択を促すメッセージが表示されますので、FireFoxにナビゲートする必要があります。

  • は、これらのアプリケーションのCFBundleExecutableは "Firefoxの" であるinfo.plistファイルから自分の携帯電話
関連する問題