切换屏幕自动脚本

时间:2014-03-28 12:44:56

标签: applescript fullscreen osx-mavericks

我经常发现我的Mac - 在办公室里使用2个屏幕 - 并不总是记得应用程序关闭的屏幕。我还想有时为应用切换屏幕 - 例如使用启动栏 - 所以我开始搜索和编写一个苹果脚本,但它无法正常工作。

如果应用程序是全屏模式,脚本只是更改应用程序的画布 - Safari页面 - 而不是完整的应用程序,所以我决定检查,状态并退出“全屏”并随后切换。这导致问题,脚本退出全屏,第二次尝试,屏幕切换...我是新手,所以我不知道该怎么办。

在小牛队工作......

# by kg
# Version 1.0
# Date: Do. 20. März, 2014
# isFullscreen and toggleFullscreen from http://stackoverflow.com/questions/8215501/applescript-use-lion-fullscreen
set leftScreen to {-1440, 0}
set rightScreen to {0, 0}
set wasFullScreen to false




set myParam to isFullScreen()
if myParam is equal to true then
    toggleFullScreen()
    set wasFullScreen to true
end if
log "end if 1 - toggle fullscreen to little"
changepos()
if wasFullScreen is equal to true then
    toggleFullScreen()
end if
log "end if 2 - toggle fullscreen state to old"


on changepos()
    tell application "System Events"
        set theName to name of the first process whose frontmost is true
        set winPos to get position of first window of application process theName
        log "habe position von Fenster von " & theName & winPos
        --display dialog "na supa"
        if (item 1 of winPos is greater than or equal to "0") then
            set position of first window of application process theName to {-1440, 0}
            --display dialog "left screen"
        else
            set position of first window of application process theName to {0, 0}
            --display dialog "right screen"
        end if
    end tell
    --display dialog "aus"
    return true
end changepos

on isFullScreen()
    tell application "System Events"
        try
            tell front window of (first process whose frontmost is true)
                return get value of attribute "AXFullScreen"
            end tell
        end try
    end tell
    return false
end isFullScreen

on toggleFullScreen()
    set isFullScreenAfter to false
    tell application "System Events"
        try
            tell front window of (first process whose frontmost is true)
                set isFullScreen to get value of attribute "AXFullScreen"
                set isFullScreenAfter to not isFullScreen
                set value of attribute "AXFullScreen" to isFullScreenAfter
            end tell
        end try
    end tell
    return isFullScreenAfter
end toggleFullScreen

1 个答案:

答案 0 :(得分:0)

好吧,我无法找到一个AppleScript的方法,但我找到了一个名为BetterSnapTool的应用程序非常整洁。它可以在屏幕之间切换,为您做更多的事情!

Cheers.kg