PSP
 

창 영역 후킹과 커서 격납

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

실행할프로그램 = notepad.exe
Run, % 실행할프로그램, , , 활성창PID

WinWaitActive, ahk_pid %활성창PID%
활성창HWAN := WinExist("Ahk_PID " 활성창PID)
WinMove, ahk_id %활성창HWAN%, , , , % 화면Right / 2, % 화면Bottom / 2
WinGetPos, , , 창가로, 창세로, ahk_id %활성창HWAN%
WinMove, ahk_id %활성창HWAN%, , % (화면Right / 2) - (창가로 / 2), % (화면Bottom / 2) - ( 창세로 / 2)

WinGetPos, 화면x좌표, 화면y좌표, 창가로, 창세로, ahk_id %활성창HWAN%

x1 := 화면x좌표
y1 := 화면y좌표
x2 := 화면x좌표 + 창가로
y2 := 화면y좌표 + 창세로
VarSetCapacity( R, 16, 0 )
NumPut( x1, &R+0 )
NumPut( y1, &R+4 )
NumPut( x2, &R+8 )
NumPut( y2, &R+12)

DllCall( "ClipCursor", UInt,&R )

DllCall( "RegisterShellHookWindow", UInt, 활성창HWAN)
MsgNum := DllCall( "RegisterWindowMessage", Str,"SHELLHOOK" )
OnMessage( MsgNum, "ShellMessage" )
OnExit, QuitScript
Return

ShellMessage( wParam,lParam ) {
  Global R
  If ( wParam = 4 ) ;  HSHELL_WINDOWACTIVATED
    DllCall( "ClipCursor", UInt,&R )
}

QuitScript:
  DllCall( "ClipCursor" )
  ExitAPP
Return

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

 
 
ragoman@naver.com