PSP
 

화면 좌측에 창 간소화 후 1열 1행 정렬 배치

최고관리자 2026-06-24 (수) 20:58 2개월전 17  
SysGet, 화면, MonitorWorkArea ;SysGet 두 번째 인자를 Monitor로 하면 화면 전체 좌표를 구한다

실행할프로그램 = notepad.exe

Loop 4
{
Run, % 실행할프로그램, , , 활성창PID
WinWaitActive, ahk_pid %활성창PID%
WinGet, 활성창HWAN, ID, ahk_pid %활성창PID%
수집된창HWAN .= 활성창HWAN " "
}

Loop, Parse, 수집된창HWAN, %A_Space%
{
If A_Index = 1
활성창HWAN1 = % A_LoopField
If A_Index = 2
활성창HWAN2 = % A_LoopField
If A_Index = 3
활성창HWAN3 = % A_LoopField
If A_Index = 4
활성창HWAN4 = % A_LoopField
}

WinMove, ahk_id %활성창HWAN1%, , % 화면Left, % 화면Top, % 화면Right / 2, % 화면Bottom / 2
WinGetPos, 화면x좌표, 화면y좌표, 창가로, 창세로, ahk_id %활성창HWAN1%

VarSetCapacity(RECT, 16, 0)
DllCall("user32\GetClientRect", Ptr, 활성창HWAN1, Ptr, &RECT)
DllCall("user32\ClientToScreen", Ptr, 활성창HWAN1, Ptr, &RECT)
클라이언트X좌표 := NumGet(&RECT, 0, "Int")
클라이언트Y좌표 := NumGet(&RECT, 4, "Int")
클라이언트가로길이 := NumGet(&RECT, 8, "Int")
클라이언트세로길이 := NumGet(&RECT, 12, "Int")

창제목줄높이 := 창세로 - 클라이언트세로길이

WinGet, 실행창목록, List, ahk_exe %실행할프로그램%
Loop
{
  if (!실행창목록%A_Index%)
  break
  목록별색인 := 실행창목록%A_Index%
  목록별창제목 = ahk_id %목록별색인%
  WinActivate, %목록별창제목%
  WinMove, %목록별창제목%, , % 화면x좌표, % 창제목줄높이 * A_Index, % 화면Right / 4, % 창제목줄높이
}

hi
이전글  다음글  목록 글쓰기

 
 
ragoman@naver.com