找回密码
 加入
搜索
查看: 2392|回复: 4

[AU3基础] WinGetPos不能获取最小化窗口的坐标[已解决]

[复制链接]
发表于 2017-1-25 10:40:49 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2017-2-5 14:07 编辑

窗口没有最小化即便没有在最前面可以获取,最小化后就不能获取了~是不是窗口最小化都不能获取坐标?

图片是窗口最小化时的获取值


                Local $aPos = WinGetPos($Name)
                If $aPos[0] <> "-32000" And $aPos[1] <> "-32000" Then
                        IniWrite($Config, "Setup", "left", $aPos[0])
                        IniWrite($Config, "Setup", "top", $aPos[1])
                EndIf


我只有这样来获取窗体的坐标并记录,主要是怕还有其他值没有判断全。

试了一段时间没有出错。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2017-1-25 12:24:16 | 显示全部楼层
可以考虑在取坐标前,先隐藏窗口,完成后再取消隐藏.
 楼主| 发表于 2017-1-25 12:37:39 | 显示全部楼层
本帖最后由 heroxianf 于 2017-1-25 12:39 编辑

回复 2# Alam


    激活窗口哇?   我那样操作始终有2秒的延迟

;~         If WinExists($Name) Then ; 激活窗口
;~                 WinActivate($Name)
;~         EndIf
发表于 2017-1-25 13:58:15 | 显示全部楼层
若目标窗口被最小化, 则 WinGetPos 返回值将是负数, 比如 -32000,
但对(非最小化的)隐藏窗口则可正常工作.
若窗口标题是"Program Manager(程序管理器)", 则返回桌面的大小.
若同时有多个窗口符合匹配条件, 则使用最近激活的窗口.
 楼主| 发表于 2017-1-25 15:45:07 | 显示全部楼层
回复 4# 1361739590


    那就按照 -32000 这个值做个判断,使用一段时间看看会不会出错~
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-23 16:07 , Processed in 0.084476 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表