WinSet

지정된 창을 다양하게 변경합니다. 예를 들어 "항상 위에" 그리고 투명도.

WinSet, Attribute, Value [, WinTitle, WinText,  ExcludeTitle, ExcludeText]
선택

매개변수

Attribute, Value

아래 리스트를 참조합니다.

WinTitle

목표 창을 식별하는 창 제목 또는 다른 기준. WinTitle 참조.

WinText

존재하면, 이 매개변수는 목표 창 텍스트의 부문자열입니다 (동봉된 Window Spy 유틸리티에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있으면(ON) 탐지됩니다.

ExcludeTitle

제목에 이 값이 들어 있으면 제외됩니다.

ExcludeText

텍스트에 이 값이 들어 있으면 제외됩니다.

Attribute, Value

AlwaysOnTop, [On|Off|Toggle]: 창을 다른 모든 창보다 위에 있도록 만듭니다. ON으로 켜고 OFF로 끕니다. 또는 TOGGLE을 사용하면 반대 상태로 현재 상태를 설정할 수 있습니다. 생략하면, 기본값은 TOGGLE입니다. 단어 Topmost를 AlwaysOnTop 대신 사용할 수 있습니다.

Bottom: 창을 스택 하단으로 보냅니다; 즉, 모든 창의 아래로 보냅니다. Alt-Escape를 누른 것과 효과가 비슷합니다. 예를 들어: WinSet, Bottom,, WinTitle.

Top: 창을 명시적으로 활성화하지 않고 스택 상단으로 올립니다. 그렇지만, 시스템의 기본 설정 때문에 아마도 대부분의 경우 활성화될 것입니다. 게다가, 이 명령어는 운영 체제의 보호 때문에 아무 효과가 없을 수 있습니다. 운영체제는 초점을 훔치려고 시도하는 어플리케이션으로부터 사용자를 보호합니다 ( 어떤 유형이 창이 현재 활성화되어 있는가 그리고 사용자가 어떤 일을 하는가와 같은 여러 요인에 따라 달라질 수 있습니다). 한 가지 가능한 우회책은 창을 잠시 AlwaysOnTop으로 만든 다음, AlwaysOnTop을 끄는 것입니다.

Disable 또는 Enable: 창을 켜거나 끕니다. 창이 꺼지면 사용자는 그의 콘트롤과 상호작용을 할 수 없고 창도 이동할 수 없습니다. 게다가, 꺼진 창은 알트-탭 리스트에서도 빠집니다.

Redraw: 창의 겉모습/내용을 갱신하려고 시도합니다. OS에게 창이 사각 구역을 다시 그릴 필요가 있다고 알려줍니다. 이 방법이 특정한 창에 작동하지 않으면, WinMove를 시도해 보십시오. 그 마저도 작동하지 않으면, 다음을 시도해 보십시오:

WinHide, WinTitle
WinShow, WinTitle
선택 | 내려받기

Style, N 또는 ExStyle, N: 창의 스타일 또는 확장 스타일을 변경합니다. N의 첫 문자가 플러스 또는 마이너스 사인이면, N에서 스타일이 제거되거나 추가됩니다. 첫 문자가 캐럿 (^)이면, N에서 스타일은 각각 반대 상태로 토글됩니다. 첫 문자가 숫자이면, 창의 스타일은 완전히 덮어씌여집니다; 즉, N이 됩니다.

ErrorLevel은 실패시 1 그리고 성공시 0이 설정됩니다. 목표 창이 발견되지 않으면 또는 스타일 적용을 허용하지 않으면 실패가 일어납니다.

어떤 스타일을 보이는 창에 적용하고 나면, 그 창을 다시 그릴 필요가 있습니다. WinSet Redraw를 사용합니다 (아래 참조). 마지막으로, 스타일 테이블에 흔히 사용되는 스타일 번호가 나열되어 있습니다. 예를 들어:

WinSet, Style, -0xC00000, A  ; 활성 창의 제목 바를 제거합니다 (WS_CAPTION).
WinSet, ExStyle, ^0x80, WinTitle  ; WS_EX_TOOLWINDOW 속성을 토글합니다. 알트-탭 리스트로부터 창이 제거되거나/추가됩니다.
선택 | 내려받기

WinSet, Region [, Options, WinTitle, ...]

창의 모습을 지정한 사각형, 타원 또는 다각형으로 변경합니다. Options 매개변수가 비어 있으면, 그 창은 원래의/기본 디스플레이 구역으로 복구됩니다. 그렇지 않으면, 다음 옵션 중 하나 이상을 조합해 지정할 수 있습니다. 각 옵션은 다음 옵션과 스페이스(들)로 구분합니다:

Wn: 사각형이나 타원의 너비. 예를 들어: w200.
Hn: 사각형이나 타원의 높이. 예를 들어: h300.
X-Y: 각각 X/Y 좌표쌍입니다. 예를 들어, 200-0는 200을 X 좌표에 그리고 0을 Y 좌표에 사용합니다.
E: 사각형이 아니라 타원으로 만듭니다. 이 옵션은 H 옵션이 존재할 경우에만 유효합니다.
R[w-h]: 둥근 모서리를 가진 사각형을 만듭니다. 예를 들어R30-30은 각 모서리에 30x30 타원을 사용합니다. w-h를 생략하면, 30-30이 사용됩니다. RWH 옵션이 존재할 경우에만 유효합니다.

사각형 또는 타원: WH 옵션이 존재하면, 새로운 디스플레이 구역이 사각형이 됩니다. 이 사각형의 좌상 모서리는 X-Y 좌표의 (유일한) 첫 번째 쌍으로 결정됩니다. 그렇지만, E 옵션도 존재하면, 그 디스플레이 구역은 사각형이 아니라 타원이 됩니다. 예를 들어: WinSet, Region, 50-0 W200 H250 E, WinTitle.

다각형: WH 옵션이 없으면, 새 디스플레이 구역은 다각형이 됩니다. 여러 쌍의 X-Y 좌표에 의해 결정됩니다 (각 좌표 쌍은 창 안의 좌상 모서리로부터 상대적인 점입니다.). 예를 들어, 세 쌍의 좌표가 지정되면, 그 새 디스플레이 구역은 대부분의 경우 세모가 됩니다. 좌표 쌍의 순서는 서로와 관련하여 종종 중요한 경우가 있습니다. 게다가, 단어 WindOptions 안에 존재할 수 있습니다. 이 경우 다각형의 범위를 결정하기 위해 alternating 방법 대신에 winding 방법을 사용합니다.

ErrorLevel은 실패시 1, 성공시 0이 설정됩니다. 실패가 일어나는 경우는:

  1. 목표 창이 존재하지 않는다;
  2. 하나 이상의 Options 옵션이 무효하다;
  3. 2000 쌍이 넘게 좌표를 지정했다;
  4. 지정된 범위가 무효하거나 목표 창에 적용할 수 없다.

이 페이지의 아래에서 이 명령어를 사용하는 방법에 관한 예제를 참조하십시오.

WinSet, Transparent, N, WinTitle

창을 반-투명하게 만듭니다. N에 0부터 255 사이의 숫자를 지정하면 투명도를 조절할 수 있습니다: 0이면 창이 보이지 않고 255이면 완전 불투명하게 됩니다. 투명도는 완전히 끌 수 있습니다. 창에 단어 OFF를 지정하면 됩니다. 이것은 255를 지정하는 것과는 다릅니다. 왜냐하면 수행성능을 향상시키고 시스템 자원을 절약하기 때문입니다.

Transparent 그리고 TransColor에 대하여 알려진 한계:

  • 캡션(타이틀바)가 없고 always-on-top 특성이 없는 창에는 효과가 없습니다. GUI 창에 대하여, 이 문제는 창을 투명하게 만든 다음에 캡션을 제거하면 해결할 수 있습니다. 대안으로, 다음 특성들은 투명 효과를 허용합니다: Gui -Caption +ToolWindow.
  • "Transparent"를 끄기 전에 255로 설정하면 창이 다시 그려져 검정색 배경화면이 보여지는 문제를 피할 수 있습니다. 창이 여전히 올바르게 다시 그려지는 데 실패하면, 가능한 우회책은 Redraw를 참조하십시오.
  • 창에서 기존의 TransColor를 변경하려면, 변경하기 전에 먼저 투명효과를 끌 필요가 있습니다.

: 태스크 바를 투명하게 만들려면 WinSet, Transparent, 150, ahk_class Shell_TrayWnd을 사용하십시오. 비슷하게, 시작 메뉴를 투명하게 만들려면, 다음 예제를 따르십시오:

DetectHiddenWindows, on
WinSet, Transparent, 150, ahk_class BaseBar  ; 시작 메뉴의 부메뉴도 투명하게 만들려면, 아래의 스크립트도 포함하십시오.
선택 | 내려받기

전체 시스템에서 선택된 모든 메뉴를 투명하게 하려면, 다음과 같은 스크립트를 항상 실행되도록 유지합니다. 이런 스크립트는 자신의 메뉴는 투명하게 만들지 못하지만 다른 스크립트의 메뉴는 투명하게 만들 수 있습니다:

#Persistent
SetTimer, WatchForMenu, 5
return  ; 자동 실행 섹션의 끝입니다.

WatchForMenu:
DetectHiddenWindows, on  ; 메뉴의 탐지를 곧 허용합니다.
IfWinExist, ahk_class #32768
    WinSet, Transparent, 150  ; 윗 줄에서 발견된 창을 사용합니다.
return
선택 | 내려받기

WinSet, TransColor, Color [N], WinTitle

선택된 색깔의 모든 픽셀을 목표 창에서 보이지 않게 만듭니다. 그러면 창의 내용 뒤를 통과해 볼수 있습니다. 사용자가 보이지 않는 픽셀을 클릭하면, 그 클릭은 창 뒤로 "뚫고 전달됩니다". Color에는 컬러 이름 또는 RGB 값을 지정합니다 (색상 차트를 참고하시거나 아니면 RGB 모드로 PixelGetColor를 사용하십시오). 창에서 보이는 부분을 부분적으로 투명하게 만들려면, 스페이스 (쉼표 안됨) 다음에 투명도 (0-255)를 지정하면 됩니다. 예를 들어: WinSet, TransColor, EEAA99 150, WinTitle.

TransColor는 종종 화면-위-그림 그리고 기타 시각 효과를 얻기 위해 사용됩니다. 화면-위-그림 예제는 Gui 페이지의 하단에 보여줍니다.

단어 OFF를 지정하면 창에 완전히 투명 효과를 끌 수 있습니다. 다음 두 코드는 모두 기능상 동등합니다:

WinSet, Transparent, Off, WinTitle
WinSet, TransColor, Off, WinTitle
선택 | 내려받기

알려진 한계: 위의 리스트를 참조하십시오.

논평

ErrorLevel은 위에 제시된 경우를 제외하고 이 명령어로 바뀌지 않습니다.

투명 효과는 Windows 2000/XP 이상이면 지원하지만, 창의 현재 투명도 설정을 열람하는 것은 (WinGet을 통하여) Windows XP 이상에서만 가능합니다.

스크립트의 SplashText 창은 다음을 통하여 비-AlwaysOnTop으로 만들 수 있습니다:

WinSet, AlwaysOnTop, Off, My Splash Window Title
선택 | 내려받기

창 제목과 텍스트는 대소문자를 구분합니다. 숨은 창은 DetectHiddenWindows이 켜져 있으면 탐지됩니다.

관련 항목

WinGet, WinHide, WinSetTitle, WinMove, WinActivate, Control

예제

WinSet, Transparent, 200, Untitled - Notepad ; 창을 약간 투명하게 만듭니다.
WinSet, TransColor, White, Untitled - Notepad ; 모든 하얀 픽셀을 보지이 않게 만듭니다.
WinSet, AlwaysOnTop, toggle, Calculator ; 계산기의 always-on-top 상태를 토글합니다.

; 더 긴 예제:
; 다음은 "Transparent"와 "TransColor"의 효과를 보여주는 핫키들입니다. 
;  주의: 핫 키중 하나를 눌렀는데 마우스 커서가 
; TransColor의 결과로 보이지 않는 픽셀 위를 선회하고 있다면
; 그 픽셀 아래에 보이는 창이 대신 작동할 것입니다!  또한, 
; Win+G는 Windows XP에만 효과가 있습니다.
; 왜냐하면 투명도 설정의 열람은 Windows 2000에서 지원되지 않기 때문입니다:

#t::  ; Win+T를 눌러 마우스 커서 아래의 컬러를 보이지 않게 만듭니다.
MouseGetPos, MouseX, MouseY, MouseWin
PixelGetColor, MouseRGB, %MouseX%, %MouseY%, RGB
; 기존의 투명 효과를 먼저 꺼야할 필요가 있어 보입니다:
WinSet, TransColor, Off, ahk_id %MouseWin%
WinSet, TransColor, %MouseRGB% 220, ahk_id %MouseWin%
return

#o::  ; Win+O를 눌러 마우스 아래의 창에 투명 효과를 끕니다.
MouseGetPos,,, MouseWin
WinSet, TransColor, Off, ahk_id %MouseWin%
return

#g::  ; Win+G를 눌러 마우스 아래에 있는 창의 현재 설정을 보여줍니다.
MouseGetPos,,, MouseWin
WinGet, Transparent, Transparent, ahk_id %MouseWin%
WinGet, TransColor, TransColor, ahk_id %MouseWin%
ToolTip Translucency:`t%Transparent%`nTransColor:`t%TransColor%
return

; "WinSet Region" 예제:
WinSet, Region, 50-0 W200 H250, WinTitle  ; 창에서 이 사각형 밖에 있는 모든 부분을 보이지 않게 만듭니다.
WinSet, Region, 50-0 W200 H250 R40-40, WinTitle  ; 위와 같지만 모서리를 40x40으로 둥글게 만듭니다.
WinSet, Region, 50-0 W200 H250 E, WinTitle  ; 사각형 대신 타원형.
WinSet, Region, 50-0 250-0 150-250, WinTitle  ; 정점이 아래를 가리키는 삼각형.
WinSet, Region,, WinTitle ; 창을 원래/기본 디스플레이 구역으로 복구합니다.

; 다음은 좀 복잡한 구역입니다. 창 안에 뚫려 보이는 사각형을 만듭니다.
; 아래에 두 개의 사각형을 지정합니다: 바깥과 안쪽.  각 사각형은 5개의 X/Y 좌표 쌍으로 구성됩니다.
; 왜냐하면 첫 쌍은 끝에 반복되어 각 사각형을 "닫기" 때문입니다.
WinSet, Region, 0-0 300-0 300-300 0-300 0-0   100-100 200-100 200-200 100-200 100-100, WinTitle
선택 | 내려받기