这段代码通过两种方式获取窗口的坐标和大小,同时对比两种方式的结果
F1:: hwnd := WinExist("ahk_class Notepad") ; 读取客户端区域的宽度(w)和高度(h) GetWindowRect(hwnd, x, y) GetClientSize(hwnd, w, h) MsgBox, 函数坐标: %X%`,%Y%`n函数窗口大小: %W%x%H% return ; 自带命令获取窗口坐标和大小【会有大小不准的情况】 F3:: WinGetPos, X, Y, W, H, ahk_class Notepad MsgBox, 命令坐标: %X%`,%Y%`n命令窗口大小: %W%x%H% Return GetClientSize(hwnd, ByRef w, ByRef h) { VarSetCapacity(rect, 16) , DllCall("GetClientRect", "uint", hwnd, "uint", &rect) w := NumGet(rect, 8, "int") , h := NumGet(rect, 12, "int") } GetWindowRect(hwnd, ByRef x, ByRef y) { VarSetCapacity(rect, 16, 0) , DllCall("GetWindowRect", "Ptr", hwnd, "Ptr", &rect) x := NumGet(rect, 0, "int") y := NumGet(rect, 4, "int") }
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。
评论(0)