이것은 위의 AutoHotkey 스크립트 에서 약간의 업데이트 / 변경 입니다. harrymc의 . 많은 감사합니다. 예외 처리기를 추가했는데 창을 최대화 할 수 없습니다.
#Persistent
#SingleInstance,force
SetTimer, DrawRect, 50
border_thickness = 6
border_color = FF0000
DrawRect:
WinGetPos, x, y, w, h, A
WinGet, OutputVar , MinMax, A
; make maximized windows movable
; -1: The window is minimized (WinRestore can unminimize it).
; 1: The window
; is maximized (WinRestore can unmaximize it).
;0: The window is neither minimized nor maximized.
if(OutputVar == 1){
WinGetPos,x,y,w,h
WinRestore,A
Sleep,500
WinMove,A,,% x + 3, % y + 3, % A_ScreenWidth - 199, % A_ScreenHeight - 199
}
Gui, +Lastfound +AlwaysOnTop +Toolwindow
iw:= w+4
ih:= h + 4
w:=w+ 8
h:=h + 8
x:= x - border_thickness
y:= y - border_thickness
Gui, Color, FF0000
Gui, -Caption
WinSet, Region, 0-0 %w%-0 %w%-%h% 0-%h% 0-0 %border_thickness%-%border_thickness% %iw%-%border_thickness% %iw%-%ih% %border_thickness%-%ih% %border_thickness%-%border_thickness%
try{
Gui, Show, w%w% h%h% x%x% y%y% NoActivate, Table awaiting Action
} catch {
Sleep,2000
}
return
변경 사항을 설명하려면 : Google 크롬에서 탭을 닫을 때 Control + w를 통해 4 개의 모니터에 퍼져서 때때로 잘못된 것을 닫았습니다. 솔루션이이 페이지에서 어제 검색 및 발견되었습니다. 메모장 ++의 "다른 이름으로 저장"창을 열 때 몇 분 후에 예외가 발생했습니다. 이 예외는 이제 try, catch 블록을 통해 차단됩니다. 또한 최대화 된 창에 빨간색 프레임이 표시되지 않는 문제가 있었으므로 "if (OutputVar == 1) {..."안에 최대화 된 창을 복원합니다.