대부분의 Linux 창 관리자에서 Alt키를 사용하여 클릭하고 끌어서 창을 다시 정렬 할 수 있습니다. 이것은 Linux 창 관리자가 가장 좋아하는 기능 중 하나입니다.
Windows 7에서 이것을 수행하는 방법이 있습니까?
대부분의 Linux 창 관리자에서 Alt키를 사용하여 클릭하고 끌어서 창을 다시 정렬 할 수 있습니다. 이것은 Linux 창 관리자가 가장 좋아하는 기능 중 하나입니다.
Windows 7에서 이것을 수행하는 방법이 있습니까?
답변:
이 자동 단축 키 스크립트를 사용하십시오 .
출처 : https://autohotkey.com/docs/scripts/EasyWindowDrag_(KDE).htm
; Easy Window Dragging -- KDE style (requires XP/2k/NT) -- by Jonny
; http://www.autohotkey.com
; This script makes it much easier to move or resize a window: 1) Hold down
; the ALT key and LEFT-click anywhere inside a window to drag it to a new
; location; 2) Hold down ALT and RIGHT-click-drag anywhere inside a window
; to easily resize it; 3) Press ALT twice, but before releasing it the second
; time, left-click to minimize the window under the mouse cursor, right-click
; to maximize it, or middle-click to close it.
; This script was inspired by and built on many like it
; in the forum. Thanks go out to ck, thinkstorm, Chris,
; and aurelian for a job well done.
; Change history:
; November 07, 2006: Optimized resizing code in !RButton, courtesy of bluedawn.
; February 05, 2006: Fixed double-alt (the ~Alt hotkey) to work with latest versions of AHK.
; The Double-Alt modifier is activated by pressing
; Alt twice, much like a double-click. Hold the second
; press down until you click.
;
; The shortcuts:
; Alt + Left Button : Drag to move a window.
; Alt + Right Button : Drag to resize a window.
; Double-Alt + Left Button : Minimize a window.
; Double-Alt + Right Button : Maximize/Restore a window.
; Double-Alt + Middle Button : Close a window.
;
; You can optionally release Alt after the first
; click rather than holding it down the whole time.
If (A_AhkVersion < "1.0.39.00")
{
MsgBox,20,,This script may not work properly with your version of AutoHotkey. Continue?
IfMsgBox,No
ExitApp
}
; This is the setting that runs smoothest on my
; system. Depending on your video card and cpu
; power, you may want to raise or lower this value.
SetWinDelay,2
CoordMode,Mouse
return
!LButton::
If DoubleAlt
{
MouseGetPos,,,KDE_id
; This message is mostly equivalent to WinMinimize,
; but it avoids a bug with PSPad.
PostMessage,0x112,0xf020,,,ahk_id %KDE_id%
DoubleAlt := false
return
}
; Get the initial mouse position and window id, and
; abort if the window is maximized.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
return
; Get the initial window position.
WinGetPos,KDE_WinX1,KDE_WinY1,,,ahk_id %KDE_id%
Loop
{
GetKeyState,KDE_Button,LButton,P ; Break if button has been released.
If KDE_Button = U
break
MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position.
KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position.
KDE_Y2 -= KDE_Y1
KDE_WinX2 := (KDE_WinX1 + KDE_X2) ; Apply this offset to the window position.
KDE_WinY2 := (KDE_WinY1 + KDE_Y2)
WinMove,ahk_id %KDE_id%,,%KDE_WinX2%,%KDE_WinY2% ; Move the window to the new position.
}
return
!RButton::
If DoubleAlt
{
MouseGetPos,,,KDE_id
; Toggle between maximized and restored state.
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
WinRestore,ahk_id %KDE_id%
Else
WinMaximize,ahk_id %KDE_id%
DoubleAlt := false
return
}
; Get the initial mouse position and window id, and
; abort if the window is maximized.
MouseGetPos,KDE_X1,KDE_Y1,KDE_id
WinGet,KDE_Win,MinMax,ahk_id %KDE_id%
If KDE_Win
return
; Get the initial window position and size.
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
; Define the window region the mouse is currently in.
; The four regions are Up and Left, Up and Right, Down and Left, Down and Right.
If (KDE_X1 < KDE_WinX1 + KDE_WinW / 2)
KDE_WinLeft := 1
Else
KDE_WinLeft := -1
If (KDE_Y1 < KDE_WinY1 + KDE_WinH / 2)
KDE_WinUp := 1
Else
KDE_WinUp := -1
Loop
{
GetKeyState,KDE_Button,RButton,P ; Break if button has been released.
If KDE_Button = U
break
MouseGetPos,KDE_X2,KDE_Y2 ; Get the current mouse position.
; Get the current window position and size.
WinGetPos,KDE_WinX1,KDE_WinY1,KDE_WinW,KDE_WinH,ahk_id %KDE_id%
KDE_X2 -= KDE_X1 ; Obtain an offset from the initial mouse position.
KDE_Y2 -= KDE_Y1
; Then, act according to the defined region.
WinMove,ahk_id %KDE_id%,, KDE_WinX1 + (KDE_WinLeft+1)/2*KDE_X2 ; X of resized window
, KDE_WinY1 + (KDE_WinUp+1)/2*KDE_Y2 ; Y of resized window
, KDE_WinW - KDE_WinLeft *KDE_X2 ; W of resized window
, KDE_WinH - KDE_WinUp *KDE_Y2 ; H of resized window
KDE_X1 := (KDE_X2 + KDE_X1) ; Reset the initial position for the next iteration.
KDE_Y1 := (KDE_Y2 + KDE_Y1)
}
return
; "Alt + MButton" may be simpler, but I
; like an extra measure of security for
; an operation like this.
!MButton::
If DoubleAlt
{
MouseGetPos,,,KDE_id
WinClose,ahk_id %KDE_id%
DoubleAlt := false
return
}
return
; This detects "double-clicks" of the alt key.
~Alt::
DoubleAlt := A_PriorHotkey = "~Alt" AND A_TimeSincePriorHotkey < 400
Sleep 0
KeyWait Alt ; This prevents the keyboard's auto-repeat feature from interfering.
return
이 프로그램은 MS-Windows에서 창 조작 (이동 / 크기 조정)을 훨씬 쉽게 해줍니다. 이제 대부분의 X11 창 관리자에서 수행되는 것처럼 왼쪽 및 오른쪽 마우스 버튼으로 각각 창의 임의 지점을 드래그하여 이동 및 크기를 조정할 수 있습니다.
http://winxmove.sourceforge.net/
앱을 실행 한 상태에서 키보드의 Alt 키를 누른 상태에서 아무 곳이나 마우스 왼쪽 버튼으로 클릭하면 창을 이동할 수 있습니다. 창의 크기를 조정하려면 Alt 및 Ctrl 키를 누른 상태에서 창의 아무 곳이나 마우스 오른쪽 단추로 클릭하고 창의 크기를 조정할 방향으로 마우스 포인터를 이동하십시오.
AltDrag는 새로운 방식으로 창을 이동하고 크기를 조정할 수있는 기능을 제공합니다. AltDrag를 시작한 후에 Alt 키를 누른 상태에서 아무 창이나 클릭하고 드래그하면됩니다.
이 동작은 Linux 및 기타 운영 체제에 이미 존재하며 AltDrag는 해당 동작을 Windows 플랫폼으로 복사 한 다음 새로운 직관적 기능으로 추가 확장하는 임무를 수행했습니다.
그것은 훨씬 더 구성 가능하며 이전 창보다 많은 기능을 가지고 있습니다 : 스냅 창, 투명도 변경, 볼륨 변경, 다중 모니터 지원 ...
위의 두 응용 프로그램은 모두 이식 가능하며 다운로드, 추출 및 실행이 필요합니다.
다른 답변에서 언급 된 개선 된 스크립트 버전은 패키지 응용 프로그램으로 사용할 수 있습니다 : KDE Mover-Sizer . Autohotkey 스크립트이기 때문에, 나는 나름대로 커스터마이징 된 버전을 가지고 있습니다.