heroxianf 发表于 2017-1-25 10:40:49

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

本帖最后由 heroxianf 于 2017-2-5 14:07 编辑

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

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


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

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

试了一段时间没有出错。{:face (197):}

Alam 发表于 2017-1-25 12:24:16

可以考虑在取坐标前,先隐藏窗口,完成后再取消隐藏.

heroxianf 发表于 2017-1-25 12:37:39

本帖最后由 heroxianf 于 2017-1-25 12:39 编辑

回复 2# Alam


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

;~         If WinExists($Name) Then ; 激活窗口
;~                 WinActivate($Name)
;~         EndIf

1361739590 发表于 2017-1-25 13:58:15

若目标窗口被最小化, 则 WinGetPos 返回值将是负数, 比如 -32000,
但对(非最小化的)隐藏窗口则可正常工作.
若窗口标题是"Program Manager(程序管理器)", 则返回桌面的大小.
若同时有多个窗口符合匹配条件, 则使用最近激活的窗口.

heroxianf 发表于 2017-1-25 15:45:07

回复 4# 1361739590


    那就按照 -32000 这个值做个判断,使用一段时间看看会不会出错~{:face (396):}
页: [1]
查看完整版本: WinGetPos不能获取最小化窗口的坐标[已解决]