7

ドックアイコンを右クリックしたときに表示されるメニュー項目にAppleScriptでアクセスする方法はありますか?

具体的には、これが私がやりたいことです:

MacOS XSnowLeopardのWebブラウザとしてGoogleChromeを使用しています。私はキーボードショートカットの常習者です。QuickSilverを使用して、できる限りのキーボードショートカットを作成しています。私が行う最も一般的なことの1つは、新しいWebブラウザウィンドウを開くことです。ただし、現在作業中のタスクを分割するためにSpacesを頻繁に使用しています。また、QuickSilverトリガーを使用してWebブラウザーまたはWebページを開くと、SpacesはChromeを使用した最後のスペースに切り替わり、新しいタブを開きます。それは私を別の空間に、したがって別の仕事に連れて行くので、何時間も私をそらします。これを修正するには、Google Chromeアイコンを右クリックし、[新しいウィンドウ]オプションをクリックして、現在のスペースに新しいウィンドウを開きます。しかし、AppleScriptでは、Google Chromeで何かをするために、私が最初にしなければならないことはそれをアクティブにすることです、これで元の問題に戻ります。誰かがこの問題の解決策、AppleScriptまたはその他を考えることができますか?それは深刻な問題になっています。Firefoxを使用していたとき、「常に新しいウィンドウでポップアップリンクを開く」などの設定項目を変更することで問題を解決しました。これは一種のスレッジハンマーアプローチでしたが、機能しました。Firefoxにはいつでも戻ることができますが、最初にここで質問したいと思いました。何かアイデアはありますか?Firefoxにはいつでも戻ることができますが、最初にここで質問したいと思いました。何かアイデアはありますか?Firefoxにはいつでも戻ることができますが、最初にここで質問したいと思いました。何かアイデアはありますか?

4

5 に答える 5

17

あなたがまだ興味があるかどうかはわかりませんが...

 tell application "Dock"
    activate
end tell
tell application "System Events"
    tell process "Dock"
        set frontmost to true
        activate
        tell list 1
            perform action "AXShowMenu" of UI element "Google Chrome"
            delay 1
            repeat 4 times -- count number of items to the one you want
                key code 126 -- up arrow
                -- key code 125 -- down arrow
            end repeat
            delay 1
            repeat 2 times
                key code 36 -- return key
            end repeat
        end tell
    end tell
end tell
于 2011-01-26T17:09:23.933 に答える
3

興味のある人なら誰でも、この問題に対する合理的な解決策があると思いますが、ドックアイコンを右クリックする必要はありません。

まず、システム環境設定の「スペース」環境設定ペインで、「アプリケーションに切り替えるときに、アプリケーションのウィンドウが開いているスペースに切り替える」のチェックを外す必要があります。次に、次のAppleScriptを作成しました。

tell application "Google Chrome" to activate

tell application "System Events"
    tell process "Google Chrome"
        try
            set var to get name of window 1
        on error
            set var to "no window exists!!!"
        end try
    end tell
end tell

if var is "no window exists!!!" then
    tell application "System Events"
        tell process "Google Chrome"
            click menu item "New Window" of menu "File" of menu bar 1
        end tell
    end tell
else
    tell application "System Events"
        tell process "Google Chrome"
            click menu item "New Tab" of menu "File" of menu bar 1
        end tell
    end tell
end if

Sparkを使用してこのAppleScriptを起動します。これにより、ショートカットキーを割り当てることができます。

特にシステムに負荷がかかっている場合は少し遅くなりますが、通常は実行に1秒ほどかかりません。また、Firefoxで発生していた問題を回避できます。この問題では、1日の終わりに数十のウィンドウが開いてしまいます。

于 2010-08-26T14:20:32.207 に答える
3

ChromiumのナイトリービルドにはAppleScriptのサポートが含まれるようになり、まもなくChromeに組み込まれるはずです。これは、次のことができることを意味します。

tell application "Chromium"
    make new window
    activate
end tell
于 2010-08-27T00:23:05.307 に答える
1

最も賛成の回答のバリエーションとして、メニュー項目の名前を受け入れるスクリプトのバージョンを次に示します。これにより、カウントを行う必要がなくなります。

この例では、Finderのドックメニューから[フォルダに移動...]をクリックします。

tell application "Dock"
    activate
end tell
tell application "System Events"
    tell process "Dock"
        set frontmost to true
        activate
        tell UI element "Finder" of list 1
            perform action "AXShowMenu"
            click menu item "Go to Folder…" of menu "Finder"
        end tell
    end tell
end tell
于 2020-04-16T00:45:43.563 に答える
0

または、次の非表示オプションを呼び出すこともできます。

defaults write com.apple.dock workspaces-auto-swoosh -bool NO
killall Dock

また、私にとっては、アプリケーションを切り替えるときにデスクトップに投げ込まれないというプラスの効果もあります。ChromeをアクティブなアプリとしてCmd+Nを実行するだけです。

ところで、⌃1、⌃2などの代わりに設定すると、Fn + 1、Fn + 2などで直接スペースに移動できます。キーボードショートカットを[キーボード]->[ショートカット設定]で設定する前に、スペースを作成する必要があります。 。

于 2019-05-29T10:40:13.733 に答える