WinSet

지정된 창에 다양한 변경을 가할 수 있습니다. 예를 들어 "항상 위에" 그리고 투명도.

WinSet, SubCommand, Value , WinTitle, WinText, ExcludeTitle, ExcludeText

매개변수

SubCommand, Value
These are dependent upon each other and their usage is described below.
WinTitle
목표 창을 식별하는 창 제목 또는 다른 기준. WinTitle 참조.
WinText
존재하면, 이 매개변수는 목표 창 텍스트의 부문자열입니다 (동봉된 Window Spy 유틸리티에 노출됨). 숨은 텍스트는 DetectHiddenText가 켜져 있어야 탐지됩니다.
ExcludeTitle
제목에 이 값이 있는 창은 무시합니다.
ExcludeText
텍스트에 이 값이 있는 창은 무시합니다.

부-명령어

For SubCommand, specify one of the following:

AlwaysOnTop

창을 다른 모든 창보다 위에 있도록 만듭니다.

WinSet, AlwaysOnTop , OnOffToggle, WinTitle, WinText, ExcludeTitle, ExcludeText

For OnOffToggle, specify On turn on the setting, Off to turn it off, or Toggle to set it to the opposite of its current state. If OnOffToggle is blank or omitted, it defaults to Toggle. 단어 Topmost를 AlwaysOnTop 대신 사용할 수 있습니다.

[v1.1.30+]: The decimal values 1, 0 and -1 may be used in place of On, Off and Toggle, respectively.

Bottom

창을 스택 하단으로 보냅니다; 즉, 모든 창의 아래로 보냅니다.

WinSet, Bottom ,, WinTitle, WinText, ExcludeTitle, ExcludeText

Alt+Esc를 누른 것과 효과가 비슷합니다.

Top

창을 명시적으로 활성화하지 않고 스택 상단으로 올립니다.

WinSet, Top ,, WinTitle, WinText, ExcludeTitle, ExcludeText

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

Disable

Disables a window.

WinSet, Disable ,, WinTitle, WinText, ExcludeTitle, ExcludeText

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

Enable

Enables a window.

WinSet, Enable ,, WinTitle, WinText, ExcludeTitle, ExcludeText

Redraw

Redraws a window.

WinSet, Redraw ,, WinTitle, WinText, ExcludeTitle, ExcludeText

This sub-command attempts to update the appearance/contents of a window by informing the OS that the window's rectangle needs to be redrawn. If this approach does not work for a particular window, try WinMove. If that does not work, try WinHide in combination with WinShow.

Style

Changes the style of a window.

WinSet, Style, N , WinTitle, WinText, ExcludeTitle, ExcludeText

<s0>N</s0> 첫 문자가 플러스 또는 마이너스 사인이면 <s1>N</s1>에 있는 스타일이 추가되거나 제거됩니다. 첫 문자가 캐럿 (^)이면, N에 있는 스타일들이 각각 반대 상태로 토글됩니다. 첫 문자가 숫자이면, 창의 스타일은 완전히 덮어씌여집니다; 즉, N이 됩니다.

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

After applying certain style changes to a visible window, it might be necessary to redraw the window using the Redraw sub-command above. 마지막으로, 스타일 테이블에 흔히 사용되는 스타일 번호가 나열되어 있습니다. 예를 들어:

WinSet, Style, -0xC00000, A  ; 활성 창의 제목 바를 제거합니다 (WS_CAPTION).

ExStyle

Changes the extended style of a window.

WinSet, ExStyle, N , WinTitle, WinText, ExcludeTitle, ExcludeText

See the Style sub-command for details. 예를 들어:

WinSet, ExStyle, ^0x80, WinTitle ; WS_EX_TOOLWINDOW 속성을 토글합니다. 알트-탭 리스트로부터 창이 제거되거나/추가됩니다.

Region

창의 모습을 지정한 사각형, 타원 또는 다각형으로 변경합니다.

WinSet, Region , Options, WinTitle, WinText, ExcludeTitle, ExcludeText

If the Options parameter is blank or omitted, the window is restored to its original/default display area. 그렇지 않으면, 다음 옵션 중 하나 이상을 조합해 지정할 수 있습니다. 각 옵션은 다음 옵션과 스페이스(들)로 구분합니다:

Wn: 사각형이나 타원의 너비. 예를 들어: w200.

Hn: 사각형이나 타원의 높이. 예를 들어: h200.

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) 지정된 범위가 무효하거나 목표 창에 적용할 수 없다.

See example #7 at the bottom of this page for how to use this sub-command.

When a region is set for a window owned by the script, the system may automatically change the method it uses to render the window's frame, thereby altering its appearance. The effect is similar to workaround #2 shown below, but only affects the window until its region is reset.

알려진 한계: Setting a region for a window not owned by the script may produce unexpected results if the window has a caption (title bar), and the system has desktop composition enabled. This is because the visible frame is not actually part of the window, but rendered by a separate system process known as the "desktop window manager". Note that desktop composition is always enabled on Windows 8 and later. One of the following two workarounds can be used:

; #1: Remove the window's caption.
WinSet Style, -0xC00000, Window Title

; To undo it:
WinSet Style, +0xC00000, Window Title
; #2: Disable DWM rendering of the window's frame.
DllCall("dwmapi\DwmSetWindowAttribute", "ptr", WinExist("Window Title")
  , "uint", DWMWA_NCRENDERING_POLICY := 2, "int*", DWMNCRP_DISABLED := 1, "uint", 4)
  
; To undo it (this might also cause any set region to be ignored):
DllCall("dwmapi\DwmSetWindowAttribute", "ptr", WinExist("Window Title")
  , "uint", DWMWA_NCRENDERING_POLICY := 2, "int*", DWMNCRP_ENABLED := 2, "uint", 4)

Transparent

창을 반-투명하게 만듭니다.

WinSet, Transparent , N, WinTitle, WinText, ExcludeTitle, ExcludeText

N에 0부터 255 사이의 숫자를 지정하면 투명도를 조절할 수 있습니다: 0이면 창이 보이지 않고 255이면 완전 불투명하게 됩니다.

단어 Off를 지정하면 창에 완전히 투명 효과를 끌 수 있습니다. This is functionally identical to WinSet, TransColor, Off, WinTitle. Specifying Off is different than specifying 255 because it may improve performance and reduce usage of system resources.

For example, to make the task bar transparent, use WinSet, Transparent, 150, ahk_class Shell_TrayWnd. Similarly, to make the classic Start Menu transparent, see example #5. To make the Start Menu's submenus transparent, also include the script from example #6.

Setting the transparency level to 255 before using Off might avoid window redrawing problems such as a black background. 창이 여전히 올바르게 다시 그려지는 데 실패하면, 가능한 우회책은 Redraw를 참조하십시오.

[v1.1.24.05+]: This sub-command also works with a window that lacks a caption (title bar) and lacks the always-on-top property.

TransColor

선택된 색깔의 모든 픽셀을 목표 창에서 보이지 않게 만듭니다.

WinSet, TransColor, Color , WinTitle, WinText, ExcludeTitle, ExcludeText

This allows the contents of the window behind it to show through. 사용자가 보이지 않는 픽셀을 클릭하면, 그 클릭은 창 뒤로 "뚫고 전달됩니다". Color에는 컬러 이름 또는 RGB 값을 지정합니다 (색상 차트를 참고하시거나 아니면 RGB 모드로 PixelGetColor를 사용하십시오). 창에서 보이는 부분을 부분적으로 투명하게 만들려면, 스페이스 (쉼표 안됨) 다음에 투명도 (0-255)를 지정하면 됩니다. 예를 들어: WinSet, TransColor, EEAA99 150, WinTitle.

단어 Off를 지정하면 창에 완전히 투명 효과를 끌 수 있습니다. This is functionally identical to WinSet, Transparent, Off, WinTitle. Specifying Off is different than specifying 255 because it may improve performance and reduce usage of system resources.

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

Setting the transparency level to 255 before using Off might avoid window redrawing problems such as a black background. 창이 여전히 올바르게 다시 그려지는 데 실패하면, 가능한 우회책은 Redraw를 참조하십시오.

창에서 기존의 TransColor를 변경하려면, 변경하기 전에 먼저 투명효과를 끌 필요가 있습니다.

[v1.1.24.05+]: This sub-command also works with a window that lacks a caption (title bar) and lacks the always-on-top property.

논평

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

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

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

WinSet, AlwaysOnTop, Off, My Splash Window Title

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

WinGet, WinHide, WinSetTitle, WinMove, WinActivate, Control

예제

Makes Notepad a little bit transparent.

WinSet, Transparent, 200, Untitled - Notepad

Makes all white pixels in Notepad invisible. This example may not work well with the new Notepad on Windows 11 or later.

WinSet, TransColor, White, Untitled - Notepad

Toggles the always-on-top status of the calculator.

WinSet, AlwaysOnTop, Toggle, Calculator

Demonstrates the effects of the sub-commands Transparent and TransColor. 주의: If you press one of the hotkeys while the mouse cursor is hovering over a pixel that is invisible as a result of TransColor, the window visible beneath that pixel will be acted upon instead! Also, Win+G will have an effect only on Windows XP or later because retrieval of transparency settings is not supported by 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

Makes the classic Start Menu transparent (to additionally make the Start Menu's submenus transparent, see example #6).

DetectHiddenWindows, On
WinSet, Transparent, 150, ahk_class BaseBar

Makes all or selected menus transparent throughout the system as soon as they appear. 이런 스크립트는 자신의 메뉴는 투명하게 만들지 못하지만 다른 스크립트의 메뉴는 투명하게 만들 수 있습니다.

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

WatchForMenu:
DetectHiddenWindows, On  ; 메뉴의 탐지를 곧 허용합니다.
if WinExist("ahk_class #32768")
    WinSet, Transparent, 150  ; 윗 줄에서 발견된 창을 사용합니다.
return

Usage of the Region sub-command. These examples may not work well with the new Notepad on Windows 11 or later.

The following makes all parts of Notepad outside this rectangle invisible.

WinSet, Region, 50-0 W200 H250, ahk_class Notepad

The following does the same as above but with corners rounded to 40x40.

WinSet, Region, 50-0 W200 H250 R40-40, ahk_class Notepad

The following creates an ellipse instead of a rectangle.

WinSet, Region, 50-0 W200 H250 E, ahk_class Notepad

The following creates a triangle with apex pointing down.

WinSet, Region, 50-0 250-0 150-250, ahk_class Notepad

The following restores the window to its original/default display area.

WinSet, Region,, ahk_class Notepad

The following creates a see-through rectangular hole inside Notepad (or any other window). 아래에 두 개의 사각형을 지정합니다: 바깥과 안쪽. 각 사각형은 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, ahk_class Notepad