관리 메뉴

ㄴrㅎnㅂrㄹrㄱi

WinGet 윈도우 핸들(고유의ID)(이)나 일람, 프로세스ID등을 취득 본문

AUTOHOTKEY/레퍼런스

WinGet 윈도우 핸들(고유의ID)(이)나 일람, 프로세스ID등을 취득

님투 2007. 11. 7. 20:11
반응형

WinGet

윈도우 핸들(고유의ID)(이)나 일람, 프로세스ID등을 취득

WinGet, OutputVar [, Cmd, WinTitle, WinText, ExcludeTitle, ExcludeText]

Parameters


인수명 설명
OutputVar 결과를 격납하는 변수명
Cmd 무엇을 취득하는지를 지정.생략시는 「ID」.자세한 것은 아래와 같이 참조.
WinTitle 윈도우 타이틀 등.
윈도우 지정의 방법참조.
WinText 윈도우에 포함되는 텍스트
ExcludeTitle 제외 타이틀
ExcludeText 제외 텍스트

Cmd(으)로 지정하는 커멘드

ID
조건에 일치하는 제일 최초(전면)의 윈도우의 윈도우 핸들(고유의ID)
IDLast
조건에 일치하는 제일 최후(배면)의 윈도우의 윈도우 핸들(고유의ID)
윈도우가 하나 밖에 성냥 하지 않는 경우는 「ID」라고 변하지 않다.
WinActivateBottom의 매치 동작과 동등.
PID
조건에 일치하는 제일 최초(전면)의 윈도우의PID(프로세스ID). Process커멘드로 사용한다.
ProcessName
조건에 일치하는 제일 최초(전면)의 윈도우의 프로세스의 실행 파일명.
ControlList
조건에 일치하는 최초의 윈도우상의 컨트롤의ClassNN의 일람을 개행 단락으로 얻는다.
줄 순서는 컨트롤의Z순위의 순서가 되어 있다.
parsing loop그리고 하나씩 처리할 수 있다.
윈도우가 컨트롤을 포함하지 않는 경우는, 비운다.
ControlListHWND
ControlList(와)과 같지만,ClassNN대신에 컨트롤의 윈도우 핸들의 일람을 취득한다.
Count
조건에 일치하는 윈도우의 수
List
조건에 일치하는 윈도우를 모두 열거한다.
OutputVar그리고 지정한 변수에는 윈도우의 수가 대입되어 「OutputVar번호(1...)」라고 하는 이름의 변수(례:OutputVar1)에 차례로 윈도우 핸들이 격납된다.
존재하는 모든 윈도우를 열거하려면 ,WinTitle(와)과WinText(을)를 비워,ExcludeTitle에 존재 할 수 없는 타이틀을 지정한다.
MinMax
조건에 일치하는 제일 최초(전면)의 윈도우 상태를 취득한다.
최소화되고 있으면 「-1」, 최대화되고 있으면 「1」, 통상 상태라면 「0」(이)가 취득된다.
Transparent
윈도우의 불투명도.
0하지만 완전하게 불가시,255하지만 완전하게 불투명.
반투명이 아닐 때는 비운다.
TransColor
반투명화 되고 있는 색.
특정의 색이 반투명이 되어 있는 윈도우에서는 「0x00CC99」(와)과 같은 형식에서 그 색이 취득된다.그 이외의 경우는 비운다.
Style
ExStyle
윈도우의 스타일, 확장 스타일을8자리수의16진수로 얻는다.
스타일에 대해서는, 윈도우 스타일 일람(을)를 참조.
특정의 스타일이 포함되어 있을까를 조사하려면 , Transform커멘드의BitAnd(을)를 사용한다.(조사하고 싶은 스타일의 수치와의BitAnd하지만0(이)가 아니면, 포함되어 있다)

Remarks

윈도우 핸들은16진수의 형식에서 취득된다.
취득한 핸들은, 윈도우 관련 커멘드의WinTitle(을)를 지정하는 (곳)중에 「ahk_id %OutputVar%」라고 하도록(듯이) 해 사용할 수 있다.

마우스 커서아래의 윈도우의 핸들을 취득하려면 , MouseGetPos커멘드를 사용한다.


Related

WinGetClass, WinGetTitle, MouseGetPos, GroupAdd


Example(s)

WinGet, active_id, ID, A
WinMaximize, ahk_id %active_id%
MsgBox, The active window's ID is "%active_id%".
; This next example will visit all open windows and display info
; about each of them:
WinGet, id, list, , , Program Manager
Loop, %id%
{
	StringTrimRight, this_id, id%a_index%, 0
	WinActivate, ahk_id %this_id%
	WinGetClass, this_class, ahk_id %this_id%
	WinGetTitle, this_title, ahk_id %this_id%
	MsgBox, 4, , Visiting All Windows`n%a_index% of %id%`nahk_id %this_id%`nahk_class %this_class%`n%this_title%`n`nContinue?
	IfMsgBox, NO, break
}
Example #3: Extract the individual control names from a ControlList:
WinGet, ActiveControlList, ControlList, A
Loop, Parse, ActiveControlList, `n
{
	MsgBox, 4,, Control #%a_index% is "%A_LoopField%". Continue?
	IfMsgBox, No
		break
}

Example #4: Display in real time the active window's control list:
#Persistent
SetTimer, WatchActiveWindow, 200
return
WatchActiveWindow:
WinGet, ControlList, ControlList, A
ToolTip, %ControlList%
return
반응형
Comments