한 번의 키 입력으로 모니터간에 창을 자동으로 이동하는 방법은 무엇입니까?


3

Windows에서 버튼 (또는 키 스트로크)을 클릭하여 2 개의 모니터 사이에서 응용 프로그램 창을 이동할 수있는 멋진 작은 응용 프로그램이있었습니다.

모니터 사이의 창 위치를 변경하는 응용 프로그램을 알고 있지만 모니터간에 않습니다.

실제로 그러한 신청서가 있는지 알고 있습니까?

답변:


1

나는 당신이하고 싶은 것을하기 위해 다음의 AppleScript를 사용한다; 현재 화면 크기가 같고 나란히 배치 된 것으로 가정하고 있지만 다른 경우에는 비교적 쉽게 변경해야합니다. 키 스트로크 명령을 사용하여 AppleScript를 실행하는 많은 기술이 있습니다. 개인적으로, 나는 집사 .

tell application "Finder"
    set _bounds to bounds of window of desktop
    set _width to item 3 of _bounds
end tell

set left_width to _width / 2

tell application "System Events"
    tell (first process whose frontmost is true)
        tell first window
            set {x, y} to (get position)
            if x < left_width then
                set position to {x + left_width, y}
            else
                set position to {x - left_width, y}
            end if
        end tell
    end tell
end tell

2

빠른 검색은 찾고있는 기능을 포함하는 몇 가지 응용 프로그램을 생성하지만 어느 것도 무료 인 것으로 보이지 않습니다. 그들은 시련을 겪는다. 내가 무료로 찾으면 알려주지.

SizeUp , 최적의 레이아웃 , WindowMover . SizeUp은 Cinch와 동일한 제작자가 만든 것으로 보아 가장 가볍고 보이는 세 가지 중에서 가장 좋은 것 같습니다.


1
SizeUp은 꽤 좋은데, 나는 행복한 고객이다.
Daniel Beck

0

리눅스에서 나는 여전히 해결책을 찾고있다.

UltraMon은 Windows 용 문제를 훌륭하게 해결하는 셰어웨어입니다.

다음 스크립트는 Apple Mac OS X에서 사용할 수 있습니다. 바로 가기는 Quicksilver로 만들 수 있습니다

--  Window Moving Script between multiple monitors for Apple Mac OS X 10.x
-- (something I've been doing with UltraMon for quite a while)
--  inspired by:
--     http://www.tidbits.com/webx?14@@.3c7b1ae3/5
--     http://macscripter.net/viewtopic.php?id=24511
-- and http://daringfireball.net/2006/12/display_size_applescript_the_lazy_way
-- thanx for the input ... I was looking for a solution of this quite a while
-- best to be used with a custom trigger in Quicksilver where this script is assigned to a
-- keyboard short cut (I use ALT Cursor-Right) 
-- you might want to put Quicksilver into your Autostart Objects
-- 2009-09-14 Wolfgang Fahl

--
-- get the front Window
-- 
on getFrontWindow1()
    tell application "System Events"
        set theFrontWindow to first window of (first process whose frontmost is true)
        -- set theFrontWindow to the front window
        set windowname to name of theFrontWindow as string
        say "Moving" & windowname
        --display dialog "front most windows is " & name of  theFrontWindow buttons ("Cool") giving up after 3 default button 1
        return theFrontWindow
    end tell
end getFrontWindow1
--
-- get the front Window
-- 
on getFrontWindow()
    tell application "System Events"
        repeat with theapp in (every application process whose visible is true and frontmost is true)
            repeat with ew in (every window of theapp)
                return ew
            end repeat
        end repeat
    end tell
end getFrontWindow
--
-- list all windows
--
on listWindows()
    tell application "System Events"
        repeat with theapp in (every application process whose visible is true and frontmost is true)
            repeat with ew in (every window of theapp)
                set windowname to name of ew as string
                say windowname
            end repeat
        end repeat
    end tell
end listWindows

--
-- message dialog
--
on show(aMessage)
    -- display a dialog with a message
    display dialog aMessage buttons {"Ok"} default button "Ok"
end show

--
-- get the screen information
--
on getScreenInfo(theIndex)
    -- get the Screen Information from the windowserver defaults
    -- we are using awk to go to the DisplaySets sections and assume that Active = ... is
    -- at the start of each section
    -- we'll find OriginX= ...,OriginY= ..., Width = ... and Height= ... entries
    -- and return all of them a a list like
    -- 0 0     1920 1200
    -- 0 1920  1650 1050
    set screenInfo to do shell script "defaults read /Library/Preferences/com.apple.windowserver | awk '
        BEGIN { FS=\"=\" }
        /Active/  { screens++ }
        { gsub(\";\",\"\",$2) }
        /^ *OriginX/ { ox[screens] = $2 }
        /^ *OriginY/ { oy[screens] = $2 }
        /^ *Width/   { w[screens]  = $2 }
        /^ *Height/  { h[screens]  = $2 }
        END       {
                for (si=1;si<=screens;si++) {
                    print ox[si],oy[si],w[si],h[si]
                    }
            }'"
    set theInfo to paragraph theIndex of screenInfo
    return {word 1 of theInfo, word 2 of theInfo, word 3 of theInfo, word 4 of theInfo}
end getScreenInfo

--
-- move the front window to another monitor
--
tell application "System Events"
    -- get the OffsetX,OffsetY,Width and Height information for the screens
    -- here we assume that two screens are present (without checking this ...)
    -- first screen info
    set theScreen1 to getScreenInfo(1) of me

    -- second screen info
    set theScreen2 to getScreenInfo(2) of me

    -- for the functionality of this script we are happy with the resolution info for the time being
    set startX to item 1 of theScreen1
    set startY to item 2 of theScreen1
    set resolutionX to item 3 of theScreen1
    set resolutionY to item 4 of theScreen1

    set startX2 to item 1 of theScreen2
    set startY2 to item 2 of theScreen2
    set resolutionX2 to item 3 of theScreen2
    set resolutionY2 to item 4 of theScreen2

    -- make some nois to let everybody know we have receive the command
    beep

    -- 1st, determine current X & Y Positions of the current front window
    set theWindow to getFrontWindow() of me
    set thePosition to position of theWindow

    -- uncomment this if you'd like to debug
    -- display alert name of theWindow & ": " & ((first item of thePosition) as string) & ", " & ((second item of thePosition) as string) & " screen1:" & (startX as string) & "," & (startY as string) & "-" & (resolutionX as string) & "," & (resolutionY as string) & " screen2:" & (startX2 as string) & "," & (startY2 as string) & "-" & (resolutionX2 as string) & "," & (resolutionY2 as string)
    set currXPos to (first item of thePosition)
    set currYPos to (second item of thePosition)

    -- are we on the first monitor?
    if currXPos < resolutionX / 2 then
        -- move right
        set newX to currXPos + resolutionX
        set newY to currYPos - startY2
    else
        -- move left
        set newX to currXPos - resolutionX
        if newX < startX then
            set newX to startX
        end if
        set newY to currYPos + startY2
    end if
    -- Now we move the window moveX pixels to the right (or left if negative)
    set position of theWindow to {(newX), (newY)}
end tell

0

BetterTouch Tool을 사용해보십시오. 처음 출시 된 이래로 사용 해왔고 멋지게 작동합니다. 무엇보다도, 절대적으로 무료입니다! 앱이 절대적으로 훌륭하기 때문에 개발자에게 기부 해주십시오!



-3

나는 항상 다음과 같은 단축키를 사용한다 :

[Win + M] - 열린 창을 모두 최소화하십시오.

[Win + Shift + M] - 모든 창 최소화 실행 취소

[Win + D] : - 바탕 화면 표시 토글

[Windows + Up] - 창 최대화

[Windows + Down] - 창 최소화 / 복원

[Windows + Left] - 왼쪽에 도킹 창

[Windows + 오른쪽] - 오른쪽에 도킹 창

[Windows + Shift Up] - 윈도우의 수직 크기를 최대화합니다.

[Windows + Shift Down] - 세로 크기 복원

[Windows + Shift Left] - 창을 왼쪽 모니터로 이동

[Windows + Shift Right] - 창을 오른쪽 모니터로 이동

[Win + 스페이스 바] - Aero desktop peek

[Win + Home] - 모든 비활성 창 최소화 / 최대화

[Alt + F4] - 활성 창 닫기

[Alt + Tab] - 이전 활성 창으로 전환

[Alt + Esc] - 열려있는 모든 창을 순환합니다.

[Win + Tab] - 3D 뒤집기

[Ctrl + Win + Tab] - 영구 뒤집기 3D

여기를 확인하십시오. 유용한 Windows 단축키


3
문제는 창문이 아니라 사자에 관한 것입니다.
Vervious
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.