WinGet

ÁöÁ¤µÈ âÀÇ À¯ÀÏÇÑ ID, ÇÁ·Î¼¼½º ID, ÇÁ·Î¼¼½º À̸§, ¶Ç´Â ±×ÀÇ ÄÜÆ®·Ñ ¸ñ·ÏÀ» ¿­¶÷ÇÕ´Ï´Ù. ¶ÇÇÑ ÁöÁ¤µÈ ±âÁØ¿¡ ºÎÇÕÇÏ´Â ¸ðµç âÀÇ ¸ñ·ÏÀ» ¿­¶÷ÇÕ´Ï´Ù.

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

Parameters

OutputVar

CmdÀÇ °á°ú¸¦ ÀúÀåÇÒ º¯¼öÀÇ À̸§.

Cmd
¾Æ·¡ ¸®½ºÆ® ÂüÁ¶.
WinTitle

¸ñÇ¥ âÀ» ½Äº°Çϴ â Á¦¸ñ ¶Ç´Â ±âŸ ±âÁØ. WinTitle ÂüÁ¶.

WinText

Á¸ÀçÇϸé, ÀÌ ¸Å°³º¯¼ö´Â ¸ñÇ¥ â ÅؽºÆ®ÀÇ ºÎ¹®ÀÚ¿­ÀÔ´Ï´Ù (Window Spy À¯Æ¿¸®Æ¼¿¡ ³ëÃâ). ¼ûÀº ÅؽºÆ®´Â DetectHiddenText°¡ ÄÑÁ® ÀÖÀ¸¸é(ON) ŽÁöµË´Ï´Ù.

ExcludeTitle

Á¦¸ñ¿¡ ÀÌ °ªÀÌ Àִ âÀº Á¦¿ÜÇÕ´Ï´Ù.

ExcludeText

ÅؽºÆ®¿¡ ÀÌ °ªÀÌ Àִ âÀº Á¦¿ÜÇÕ´Ï´Ù.

Cmd´Â ¼öÇàÇÒ ¿¬»êÀÔ´Ï´Ù. ºñ¾î ÀÖÀ¸¸é ID°¡ ±âº»°ªÀÔ´Ï´Ù. ´ÙÀ½ ´Ü¾î Áß Çϳª°¡ µÉ ¼ö ÀÖ½À´Ï´Ù:

ID: âÀÇ À¯ÀÏ ID ¹øÈ£ (HWND/ÇÚµé)À» ¿­¶÷ÇÕ´Ï´Ù. ºÎÇÕÇϴ âÀÌ ¾øÀ¸¸é, OutputVar´Â ºñ¿öÁý´Ï´Ù. ÇÔ¼ö WinExist()¿Í WinActive()µµ âÀÇ ID¸¦ ¿­¶÷ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù; ¿¹¸¦ µé¾î, WinExist("A")´Â È°¼º âÀÇ ID¸¦ ¾ò´Â °¡Àå ºü¸¥ ¹æ¹ýÀÔ´Ï´Ù. ÄÜÆ®·ÑÀÇ HWND¸¦ ¹ß°ßÇÏ·Á¸é (Post/SendMessage ¶Ç´Â DllCall¿¡ »ç¿ëÇÒ ¸ñÀûÀ¸·Î), ControlGet Hwnd ¶Ç´Â MouseGetPos¸¦ »ç¿ëÇϽʽÿÀ.

IDLast: À§¿Í µ¿ÀÏÇÏÁö¸¸ ºÎÇÕÇϴ âÀÌ ¿©·µÀÌ¸é °¡Àå ¸¶Áö¸·/ÃÖÇÏÀ§ âÀÇ ID¸¦ ¿­¶÷ÇÕ´Ï´Ù. ¿ÀÁ÷ Çϳª¸¸ ÀÏÄ¡Çϸé, ID¿Í µ¿ÀÏÇÏ°Ô ¼öÇàÇÕ´Ï´Ù. ÀÌ °³³äÀº WinActivateBottomÀÌ »ç¿ëÇÏ´Â °³³ä°ú ºñ½ÁÇÕ´Ï´Ù.

PID: âÀÇ ÇÁ·Î¼¼½º ID (PID)¸¦ ¿­¶÷ÇÕ´Ï´Ù.

ProcessName: âÀ» ¼ÒÀ¯ÇÑ ÇÁ·Î¼¼½ºÀÇ À̸§À» ¿­¶÷ÇÕ´Ï´Ù (¿¹, notepad.exe). ºÎÇÕÇϴ âÀÌ ¾øÀ¸¸é, OutputVar´Â ºñ¿öÁý´Ï´Ù.

ProcessPath [v1.1.01+]: ProcessName°ú ºñ½ÁÇÏÁö¸¸, ´ÜÁö À̸§ÀÌ ¾Æ´Ï¶ó ÇÁ·Î¼¼½ºÀÇ Àüü °æ·Î¿Í À̸§À» ¿­¶÷ÇÕ´Ï´Ù.

Count: ±âÁ¸ â¿¡¼­ WinTitle, WinText, ExcludeTitle, ±×¸®°í ExcludeText (¾øÀ¸¸é 0)¿¡ ºÎÇÕÇϴ âÀÇ °³¼ö¸¦ ¿­¶÷ÇÕ´Ï´Ù. ½Ã½ºÅÛÀÇ ¸ðµç âÀ» ¿­¶÷ÇÏ·Á¸é, ³× °³ÀÇ ¸Å°³º¯¼ö¸¦ ¸ðµÎ »ý·«ÇϽʽÿÀ. ¼ûÀº âÀº DetectHiddenWindowsÀÌ ÄÑÁ® ÀÖÀ» °æ¿ì¿¡¸¸ Æ÷ÇԵ˴ϴÙ.

List: ±âÁ¸ â¿¡¼­ ÁöÁ¤µÈ WinTitle, WinText, ExcludeTitle, ±×¸®°í ExcludeText¿¡ ºÎÇÕÇÏ´Â ±âÁ¸ÀÇ ¸ðµç âÀÇ À¯ÀÏ ID ¹øÈ£µéÀ» ¿­¶÷ÇÕ´Ï´Ù. (Àüü ½Ã½ºÅÛÀÇ ¸ðµç âÀ» ¿­¶÷ÇÏ·Á¸é, ³× °³ÀÇ Á¦¸ñ/ÅؽºÆ® ¸Å°³º¯¼ö¸¦ ¸ðµÎ »ý·«ÇϽʽÿÀ). °¢ ID ¹øÈ£´Â OutputVarÀÇ À̸§À¸·Î ½ÃÀÛÇÏ´Â º¯¼ö¿¡ ÀúÀåµË´Ï´Ù (ÀÇ»ç-¹è¿­À» Çü¼ºÇÕ´Ï´Ù). ¹Ý¸é¿¡ OutputVar ÀÚü¿¡´Â ¿­¶÷µÈ Ç׸ñÀÇ °³¼ö°¡ ¼³Á¤µË´Ï´Ù (¾øÀ¸¸é 0ÀÔ´Ï´Ù). ¿¹¸¦ µé¾î, OutputVar°¡ MyArrayÀÌ°í ºÎÇÕÇÑ Ã¢ÀÌ µÎ °³ ¹ß°ßµÇ¾ú´Ù¸é, MyArray1Àº ù ¹ø° âÀÇ ID°¡ ¼³Á¤µÇ°í, MyArray2´Â µÎ ¹ø° âÀÇ ID¿¡ ¼³Á¤µË´Ï´Ù. âÀº (¹ÙÅÁÈ­¸é¿¡ ¾î¶»°Ô ½×¿© Àִ°¡¿¡ ¸ÂÃß¾î) À§¿¡¼­ ¾Æ·¡·Î ¿­¶÷µË´Ï´Ù. ¼ûÀº âÀº DetectHiddenWindowsÀÌ ÄÑÁ® ÀÖÀ» ¶§¸¸ ŽÁöµË´Ï´Ù. ÇÔ¼ö ¾È¿¡¼­, Áö¿ªÀûÀÌ ¾Æ´Ï¶ó Àü¿ªÀû ÀÇ»ç-¹è¿­À» »ý¼ºÇÏ·Á¸é, ÀÌ ¸í·É¾î¸¦ »ç¿ëÇϱâ Àü¿¡ ¸ÕÀú MyArray¸¦ Àü¿ª º¯¼ö·Î ¼±¾ðÇϽʽÿÀ (Àü¿ª-°£ÁÖ ÇÔ¼ö¿¡ ´ëÇÏ¿© ±× ¹Ý´ëµµ ¸¶Âù°¡ÁöÀÔ´Ï´Ù). ±×·¸Áö¸¸, ÈçÇÑ È¥¶õÀÇ ±Ù¿ø ¶§¹®¿¡, Á¾Á¾ °¢ º¯¼ö¸¦ ÇÔ¼ö ¾È¿¡ ¼³Á¤ÇÏ´Â °ÍÀÌ ÇʼöÀûÀÎ °æ¿ìµµ ÀÖ½À´Ï´Ù.

MinMax: â¿¡ ´ëÇÏ¿© ÃÖ¼Ò/ÃÖ´ë »óŸ¦ ¿­¶÷ÇÕ´Ï´Ù. ºÎÇÕÇϴ âÀÌ ¾øÀ¸¸é OuputVar´Â ºñ¿öÁý´Ï´Ù; ±×·¸Áö ¾ÊÀ¸¸é ´ÙÀ½ ¼ýÀÚ Áß Çϳª°¡ ¼³Á¤µË´Ï´Ù:
-1: âÀÌ ÃÖ¼Ò »óÅÂÀÔ´Ï´Ù (WinRestore·Î º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù).
1: âÀÌ ÃÖ´ë »óÅÂÀÔ´Ï´Ù (WinRestore·Î º¹¿øÇÒ ¼ö ÀÖ½À´Ï´Ù).
0: âÀÌ ÃÖ´ë »óŵµ ¾Æ´Ï°í ÃÖ¼Ò »óŵµ ¾Æ´Õ´Ï´Ù.

ControlList: â¿¡ ÀÖ´Â ¸ðµç ÄÜÆ®·ÑÀÇ À̸§À» ¿­¶÷ÇÕ´Ï´Ù. ºÎÇÕÇϴ âÀÌ Á¸ÀçÇÏÁö ¾Ê°Å³ª â¿¡ ÄÜÆ®·ÑÀÌ ¾øÀ¸¸é, OutputVar´Â ºñ¿öÁý´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, Window Spy¿¡ º¸¿©ÁöµíÀÌ, °¢ ÄÜÆ®·Ñ À̸§Àº ±×ÀÇ Å¬·¡½º À̸§°ú ¹Ù·Î ´ÙÀ½¿¡ ¿¬¼Ó ¹øÈ£ (ClassNN)·Î ±¸¼ºµË´Ï´Ù.

¸¶Áö¸· Ç׸ñÀ» Á¦¿ÜÇÏ°í °¢ Ç׸ñÀº ¶óÀÎÇǵå·Î ³¡³³´Ï´Ù (`n). ÄÜÆ®·Ñ À̸§À» Çϳª¾¿ Á¶»çÇÏ·Á¸é, ¾Æ·¡ ¿¹Á¦ ¼½¼Ç¿¡ º¸¿©ÁÖ´Â ¹Ù¿Í °°ÀÌ È¸µ¹ÀÌ ÆĽÌÀ» »ç¿ëÇϽʽÿÀ.

ÄÜÆ®·ÑÀº Z-¼ø¼­¿¡ µû¶ó Á¤·ÄµË´Ï´Ù. º¸Åë âÀÌ Áö¿øÇÑ´Ù¸é TAB Å°·Î ÃÊÁ¡À» À̵¿ÇÏ´Â ¼ø¼­¿Í µ¿ÀÏÇÕ´Ï´Ù.

ÇöÀç ¸¶¿ì½º ¾Æ·¡¿¡ ÀÖ´Â ÄÜÆ®·ÑÀº MouseGetPos·Î ¿­¶÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ControlListHwnd [v1.0.43.06+]: À§¿Í °°Áö¸¸ °¢ ÄÜÆ®·ÑÀÇ ClassNNÀÌ ¾Æ´Ï¶ó â ÇÚµé (HWND)À» ¿­¶÷ÇÕ´Ï´Ù.

Transparent: âÀÇ Åõ¸íµµ¸¦ ¿­¶÷ÇÕ´Ï´Ù (Åõ¸íµµ¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀº WinSetÀ» ÂüÁ¶ÇϽʽÿÀ). ´ÙÀ½°ú °°Àº °æ¿ì OutputVarÀÌ ºñ¿öÁý´Ï´Ù:

  1. OS°¡ Windows XPº¸´Ù ±¸ÇüÀÔ´Ï´Ù;
  2. ºÎÇÕÇϴ âÀÌ ¾ø½À´Ï´Ù;
  3. â¿¡ Åõ¸íµµ ·¹º§ÀÌ ¾ø½À´Ï´Ù;
  4. (OS ÇàÀ§·Î ¾ß±âµÈ) ±âŸ Á¶°Ç. ¿¹¸¦ µé¾î âÀ» Åõ¸íÇÏ°Ô ¸¸µç ÀÌÈÄ·Î ÃÖ¼ÒÈ­, º¹±¸, ¶Ç´Â Å©±â°¡ ¹Ù²î¾ú½À´Ï´Ù.
±×·¸Áö ¾ÊÀ¸¸é, 0ºÎÅÍ 255 »çÀÌÀÇ ¼ýÀÚ°¡ ÀúÀåµË´Ï´Ù. 0Àº º¸ÀÌÁö ¾Ê´Â âÀ» ³ªÅ¸³»°í 255´Â ¿ÏÀü ºÒÅõ¸í âÀ» ³ªÅ¸³À´Ï´Ù. ¿¹¸¦ µé¾î:

MouseGetPos,,, MouseWin
WinGet, Transparent, Transparent, ahk_id %MouseWin%  ; ¸¶¿ì½º ¾Æ·¡ÀÇ Ã¢ÀÌ Åõ¸íµµ.

TransColor: â¿¡¼­ Åõ¸íÀ¸·Î Ç¥½ÄÀÌ ºÙÀº »öÀ» ¿­¶÷ÇÕ´Ï´Ù (TransColor¸¦ ¼³Á¤ÇÏ´Â ¹ýÀº WinSet¸¦ ÂüÁ¶ÇÕ´Ï´Ù.). OutputVar´Â ´ÙÀ½°ú °°Àº °æ¿ì ºñ¿öÁý´Ï´Ù:

  1. OS°¡ Windows XPº¸´Ù ¿À·¡µÇ¾ú½À´Ï´Ù;
  2. ºÎÇÕÇϴ âÀÌ ¾ø½À´Ï´Ù;
  3. â¿¡ Åõ¸í »öÀÌ ¾ø½À´Ï´Ù; ¶Ç´Â
  4. (OS ÇàÀ§·Î ¾ß±âµÈ) ±âŸ Á¶°Ç. ¿¹¸¦ µé¾î âÀ» Åõ¸íÇÏ°Ô ¸¸µç ÀÌÈÄ·Î ÃÖ¼ÒÈ­, º¹±¸, ¶Ç´Â Å©±â°¡ ¹Ù²î¾ú½À´Ï´Ù.
±×·¸Áö ¾ÊÀ¸¸é, ¿©¼¸ÀÚ¸® ½ÊÀ°Áø RGB »öÀÌ ÀúÀåµË´Ï´Ù. ¿¹, 0x00CC99. ¿¹¸¦ µé¾î:

MouseGetPos,,, MouseWin
WinGet, TransColor, TransColor, ahk_id %MouseWin%  ; ¸¶¿ì½º Ä¿¼­ ¾Æ·¡¿¡ Àִ âÀÇ TransColor.

Style ¶Ç´Â ExStyle: âÀÇ ½ºÅ¸ÀÏ ¶Ç´Â È®Àå ½ºÅ¸ÀÏÀ» ³ªÅ¸³»´Â 8-ÀÚ¸® ½ÊÀ°Áø ¼ö¸¦ ¿­¶÷ÇÕ´Ï´Ù. ºÎÇÕÇϴ âÀÌ ¾øÀ¸¸é, OutputVar´Â ºñ¿öÁý´Ï´Ù. ´ÙÀ½ ¿¹Á¦´Â â¿¡ WS_DISABLED ½ºÅ¸ÀÏÀÌ ÀÖ´ÂÁö ¾Ë¾Æº¾´Ï´Ù:

WinGet, Style, Style, My Window Title
if (Style & 0x8000000)  ; 0x8000000 is WS_DISABLED.
  ... âÀÌ ºñÈ°¼º »óÅÂÀÔ´Ï´Ù. ±×·¡¼­ ÀûÀýÇÑ Á¶Ä¡¸¦ ¼öÇàÇÕ´Ï´Ù.

´ÙÀ½ ¿¹Á¦´Â â¿¡ WS_EX_TOPMOST ½ºÅ¸ÀÏÀÌ ÀÖ´ÂÁö ¾Ë¾Æº¾´Ï´Ù (Ç×»ó-À§¿¡):

WinGet, ExStyle, ExStyle, My Window Title
if (ExStyle & 0x8)  ; 0x8 is WS_EX_TOPMOST.
  ... âÀÌ Ç×»ó ÃÖ»óÀ§ »óÅÂÀÔ´Ï´Ù. ±×·¡¼­ ÀûÀýÇÑ Á¶Ä¡¸¦ ¼öÇàÇÕ´Ï´Ù.

½ºÅ¸ÀÏ ¸ñ·ÏÀº ½ºÅ¸ÀÏ Å×À̺íÀ» ÂüÁ¶ÇϽʽÿÀ.

³íÆò

âÀÇ ID ¹øÈ£´Â ¿ÀÁ÷ âÀÌ »ì¾Æ ÀÖÀ» µ¿¾È¿¡¸¸ À¯È¿ÇÕ´Ï´Ù. ´Ù¸¥ ¸»·Î, ¾îÇø®ÄÉÀ̼ÇÀÌ Àç½ÃÀÛÇϸé, ±×ÀÇ ¸ðµç âÀº »õ ID ¹øÈ£¸¦ ¾ò½À´Ï´Ù.

ÀÌ ¸í·É¾î·Î ¿­¶÷µÈ ID ¹øÈ£´Â ¼ýÀÚÀÌ°í (¾Õ¿¡ Á¢µÎ¾î "ahk_id"¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ½) ±×¸®°í SetFormatÀÇ ¼³Á¤¿¡ »ó°ü¾øÀÌ 16Áø Çü½ÄÀ¸·Î ÀúÀåµË´Ï´Ù.

¸¶¿ì½º Ä¿¼­ ¾Æ·¡¿¡ Àִ âÀÇ ID´Â MouseGetPos·Î ¿­¶÷ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ID ¹øÈ£´Â ÇöÀç 32-ºñÆ® ºÎÈ£¾ø´Â Á¤¼öÀÌÁö¸¸, ¾ÕÀ¸·Î 64-ºñÆ®°¡ µÉ °¡´É¼ºÀÌ ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î, ÀÌ·± °ªµé¿¡ ´ëÇØ µ¡¼ÀÀ» ÇÏ´Â °Í°ú °°Àº ¼ýÄ¡ ¿¬»êÀ» ¼öÇàÇÏ´Â °ÍÀº ¾ÈÀüÇÏÁö ¾Ê½À´Ï´Ù. ¿Ö³ÄÇÏ¸é ±×·± ¿¬»êÀº ÀÔ·Â ¹®ÀÚ¿­À» ºÎÈ£¾ø´Â Á¤¼ö°¡ ¾Æ´Ï¶ó ºÎÈ£ÀÖ´Â Á¤¼ö·Î Çؼ®ÇÒ ÇÊ¿ä°¡ Àֱ⠶§¹®ÀÔ´Ï´Ù.

â Á¦¸ñ°ú ÅؽºÆ®´Â ´ë¼Ò¹®ÀÚ¿¡ ¹Î°¨ÇÕ´Ï´Ù. ¼ûÀº âÀº DetectHiddenWindows°¡ ÄÑÁ® ÀÖÀ¸¸é ŽÁöµË´Ï´Ù.

°ü·Ã Ç׸ñ

WinGetClass, Process, WinGetTitle, MouseGetPos, ControlGet, ControlFocus, GroupAdd

¿¹Á¦

; ¿¹Á¦ #1: È°¼º âÀ» ÃÖ´ëÈ­ÇÏ°í ±×ÀÇ À¯ÀÏ ID¸¦ º¸°íÇÕ´Ï´Ù:
WinGet, active_id, ID, A
WinMaximize, ahk_id %active_id%
MsgBox, È°¼º âÀÇ ID´Â "%active_id%"ÀÔ´Ï´Ù.

; ¿¹Á¦ #2: Àüü ½Ã½ºÅÛ¿¡¼­ ¸ðµç âÀ» ¹æ¹®ÇÏ°í °¢ â¿¡ ´ëÇÏ¿© ´ÙÀ½ Á¤º¸¸¦ º¸¿©ÁÝ´Ï´Ù:
WinGet, id, list,,, Program Manager
Loop, %id%
{
    this_id := id%A_Index%
    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
}

; ¿¹Á¦ #3: ControlListÀ¸·ÎºÎÅÍ ÄÜÆ®·Ñ À̸§À» Çϳª¾¿ ÃßÃâÇÕ´Ï´Ù:
WinGet, ActiveControlList, ControlList, A
Loop, Parse, ActiveControlList, `n
{
    MsgBox, 4,, Control #%a_index% is "%A_LoopField%". Continue?
    IfMsgBox, No
        break
}

; ¿¹Á¦ #4: ½Ç½Ã°£À¸·Î È°¼º âÀÇ ÄÜÆ®·Ñ ¸®½ºÆ®¸¦ º¸¿©ÁÝ´Ï´Ù:
#Persistent
SetTimer, WatchActiveWindow, 200
return
WatchActiveWindow:
WinGet, ControlList, ControlList, A
ToolTip, %ControlList%
return