Windows 自动IT中的WM_GETMINMAXINFO

Windows 自动IT中的WM_GETMINMAXINFO,windows,winapi,autoit,Windows,Winapi,Autoit,是否有办法通过AutoIt发送WM_GETMINMAXINFO消息,以确定窗口的最大和最小大小?我找不到任何使用PostMessage()发送结构的示例,尽管我不确定这是否相关。我认为应该是这样的。根据一些测试,它似乎适用于某些窗口,而不适用于其他窗口?不确定。但无论如何,这会创建结构,然后使用\u sendmages #include <WindowsConstants.au3> #include <SendMessage.au3> Global Const $tag

是否有办法通过AutoIt发送
WM_GETMINMAXINFO
消息,以确定窗口的最大和最小大小?我找不到任何使用PostMessage()发送
结构的示例,尽管我不确定这是否相关。

我认为应该是这样的。根据一些测试,它似乎适用于某些窗口,而不适用于其他窗口?不确定。但无论如何,这会创建结构,然后使用
\u sendmages

#include <WindowsConstants.au3>
#include <SendMessage.au3>

Global Const $tagMINMAXINFO = "struct;long;long;endstruct;" & _
                            "struct;long MaxSizeX;long MaxSizeY;endstruct;" & _
                            "struct;long MaxPositionX;long MaxPositionY;endstruct;" & _
                            "struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;" & _
                            "struct;long MaxTrackSizeX;long MaxTrackSizeY;endstruct;"

Local $tMMI = DllStructCreate($tagMINMAXINFO)
_SendMessage(WinGetHandle("Test"), $WM_GETMINMAXINFO, 0, $tMMI, 0, "wparam", "struct*")

ConsoleWrite(StringFormat("Max Size: %ix%i\n", DllStructGetData($tMMI, "MaxSizeX"), DllStructGetData($tMMI, "MaxSizeY")))
ConsoleWrite(StringFormat("Max Position: %ix%i\n", DllStructGetData($tMMI, "MaxPositionX"), DllStructGetData($tMMI, "MaxPositionY")))
ConsoleWrite(StringFormat("Min Track Size: %ix%i\n", DllStructGetData($tMMI, "MinTrackSizeX"), DllStructGetData($tMMI, "MinTrackSizeY")))
ConsoleWrite(StringFormat("Max Track Size: %ix%i\n", DllStructGetData($tMMI, "MaxTrackSizeX"), DllStructGetData($tMMI, "MaxTrackSizeY")))
#包括
#包括
全局常量$tagMINMAXINFO=“struct;long;long;endstruct;”和_
“struct;long-MaxSizeX;long-MaxSizeY;endstruct;”_
“结构;长MaxPositionX;长MaxPositionY;endstruct;”&_
“struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;”_
“结构;长MaxTrackSizeX;长MaxTrackSizeY;endstruct;”
本地$tMMI=DllStructCreate($tagMINMAXINFO)
_SendMessage(wingthandle(“Test”),$WM_GETMINMAXINFO,0,$tMMI,0,“wparam”,“struct*”)
控制台写入(StringFormat(“最大大小:%ix%i\n”、DllStructGetData($tMMI,“MaxSizeX”)、DllStructGetData($tMMI,“MaxSizeY”))
控制台写入(StringFormat(“最大位置:%ix%i\n”、DllStructGetData($tMMI,“MaxPositionX”)、DllStructGetData($tMMI,“MaxPositionY”))
控制台写入(StringFormat(“最小磁道大小:%ix%i\n”、DllStructGetData($tMMI,“MinTrackSizeX”)、DllStructGetData($tMMI,“MinTrackSizeY”))
控制台写入(StringFormat(“最大磁道大小:%ix%i\n”、DLLStructionData($tMMI,“MaxTrackSizeX”)、DLLStructionData($tMMI,“MaxTrackSizeY”))

我认为应该是这样的。根据一些测试,它似乎适用于某些窗口,而不适用于其他窗口?不确定。但无论如何,这会创建结构,然后使用
\u sendmages

#include <WindowsConstants.au3>
#include <SendMessage.au3>

Global Const $tagMINMAXINFO = "struct;long;long;endstruct;" & _
                            "struct;long MaxSizeX;long MaxSizeY;endstruct;" & _
                            "struct;long MaxPositionX;long MaxPositionY;endstruct;" & _
                            "struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;" & _
                            "struct;long MaxTrackSizeX;long MaxTrackSizeY;endstruct;"

Local $tMMI = DllStructCreate($tagMINMAXINFO)
_SendMessage(WinGetHandle("Test"), $WM_GETMINMAXINFO, 0, $tMMI, 0, "wparam", "struct*")

ConsoleWrite(StringFormat("Max Size: %ix%i\n", DllStructGetData($tMMI, "MaxSizeX"), DllStructGetData($tMMI, "MaxSizeY")))
ConsoleWrite(StringFormat("Max Position: %ix%i\n", DllStructGetData($tMMI, "MaxPositionX"), DllStructGetData($tMMI, "MaxPositionY")))
ConsoleWrite(StringFormat("Min Track Size: %ix%i\n", DllStructGetData($tMMI, "MinTrackSizeX"), DllStructGetData($tMMI, "MinTrackSizeY")))
ConsoleWrite(StringFormat("Max Track Size: %ix%i\n", DllStructGetData($tMMI, "MaxTrackSizeX"), DllStructGetData($tMMI, "MaxTrackSizeY")))
#包括
#包括
全局常量$tagMINMAXINFO=“struct;long;long;endstruct;”和_
“struct;long-MaxSizeX;long-MaxSizeY;endstruct;”_
“结构;长MaxPositionX;长MaxPositionY;endstruct;”&_
“struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;”_
“结构;长MaxTrackSizeX;长MaxTrackSizeY;endstruct;”
本地$tMMI=DllStructCreate($tagMINMAXINFO)
_SendMessage(wingthandle(“Test”),$WM_GETMINMAXINFO,0,$tMMI,0,“wparam”,“struct*”)
控制台写入(StringFormat(“最大大小:%ix%i\n”、DllStructGetData($tMMI,“MaxSizeX”)、DllStructGetData($tMMI,“MaxSizeY”))
控制台写入(StringFormat(“最大位置:%ix%i\n”、DllStructGetData($tMMI,“MaxPositionX”)、DllStructGetData($tMMI,“MaxPositionY”))
控制台写入(StringFormat(“最小磁道大小:%ix%i\n”、DllStructGetData($tMMI,“MinTrackSizeX”)、DllStructGetData($tMMI,“MinTrackSizeY”))
控制台写入(StringFormat(“最大磁道大小:%ix%i\n”、DLLStructionData($tMMI,“MaxTrackSizeX”)、DLLStructionData($tMMI,“MaxTrackSizeY”))

我认为应该是这样的。根据一些测试,它似乎适用于某些窗口,而不适用于其他窗口?不确定。但无论如何,这会创建结构,然后使用
\u sendmages

#include <WindowsConstants.au3>
#include <SendMessage.au3>

Global Const $tagMINMAXINFO = "struct;long;long;endstruct;" & _
                            "struct;long MaxSizeX;long MaxSizeY;endstruct;" & _
                            "struct;long MaxPositionX;long MaxPositionY;endstruct;" & _
                            "struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;" & _
                            "struct;long MaxTrackSizeX;long MaxTrackSizeY;endstruct;"

Local $tMMI = DllStructCreate($tagMINMAXINFO)
_SendMessage(WinGetHandle("Test"), $WM_GETMINMAXINFO, 0, $tMMI, 0, "wparam", "struct*")

ConsoleWrite(StringFormat("Max Size: %ix%i\n", DllStructGetData($tMMI, "MaxSizeX"), DllStructGetData($tMMI, "MaxSizeY")))
ConsoleWrite(StringFormat("Max Position: %ix%i\n", DllStructGetData($tMMI, "MaxPositionX"), DllStructGetData($tMMI, "MaxPositionY")))
ConsoleWrite(StringFormat("Min Track Size: %ix%i\n", DllStructGetData($tMMI, "MinTrackSizeX"), DllStructGetData($tMMI, "MinTrackSizeY")))
ConsoleWrite(StringFormat("Max Track Size: %ix%i\n", DllStructGetData($tMMI, "MaxTrackSizeX"), DllStructGetData($tMMI, "MaxTrackSizeY")))
#包括
#包括
全局常量$tagMINMAXINFO=“struct;long;long;endstruct;”和_
“struct;long-MaxSizeX;long-MaxSizeY;endstruct;”_
“结构;长MaxPositionX;长MaxPositionY;endstruct;”&_
“struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;”_
“结构;长MaxTrackSizeX;长MaxTrackSizeY;endstruct;”
本地$tMMI=DllStructCreate($tagMINMAXINFO)
_SendMessage(wingthandle(“Test”),$WM_GETMINMAXINFO,0,$tMMI,0,“wparam”,“struct*”)
控制台写入(StringFormat(“最大大小:%ix%i\n”、DllStructGetData($tMMI,“MaxSizeX”)、DllStructGetData($tMMI,“MaxSizeY”))
控制台写入(StringFormat(“最大位置:%ix%i\n”、DllStructGetData($tMMI,“MaxPositionX”)、DllStructGetData($tMMI,“MaxPositionY”))
控制台写入(StringFormat(“最小磁道大小:%ix%i\n”、DllStructGetData($tMMI,“MinTrackSizeX”)、DllStructGetData($tMMI,“MinTrackSizeY”))
控制台写入(StringFormat(“最大磁道大小:%ix%i\n”、DLLStructionData($tMMI,“MaxTrackSizeX”)、DLLStructionData($tMMI,“MaxTrackSizeY”))

我认为应该是这样的。根据一些测试,它似乎适用于某些窗口,而不适用于其他窗口?不确定。但无论如何,这会创建结构,然后使用
\u sendmages

#include <WindowsConstants.au3>
#include <SendMessage.au3>

Global Const $tagMINMAXINFO = "struct;long;long;endstruct;" & _
                            "struct;long MaxSizeX;long MaxSizeY;endstruct;" & _
                            "struct;long MaxPositionX;long MaxPositionY;endstruct;" & _
                            "struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;" & _
                            "struct;long MaxTrackSizeX;long MaxTrackSizeY;endstruct;"

Local $tMMI = DllStructCreate($tagMINMAXINFO)
_SendMessage(WinGetHandle("Test"), $WM_GETMINMAXINFO, 0, $tMMI, 0, "wparam", "struct*")

ConsoleWrite(StringFormat("Max Size: %ix%i\n", DllStructGetData($tMMI, "MaxSizeX"), DllStructGetData($tMMI, "MaxSizeY")))
ConsoleWrite(StringFormat("Max Position: %ix%i\n", DllStructGetData($tMMI, "MaxPositionX"), DllStructGetData($tMMI, "MaxPositionY")))
ConsoleWrite(StringFormat("Min Track Size: %ix%i\n", DllStructGetData($tMMI, "MinTrackSizeX"), DllStructGetData($tMMI, "MinTrackSizeY")))
ConsoleWrite(StringFormat("Max Track Size: %ix%i\n", DllStructGetData($tMMI, "MaxTrackSizeX"), DllStructGetData($tMMI, "MaxTrackSizeY")))
#包括
#包括
全局常量$tagMINMAXINFO=“struct;long;long;endstruct;”和_
“struct;long-MaxSizeX;long-MaxSizeY;endstruct;”_
“结构;长MaxPositionX;长MaxPositionY;endstruct;”&_
“struct;long MinTrackSizeX;long MinTrackSizeY;endstruct;”_
“结构;长MaxTrackSizeX;长MaxTrackSizeY;endstruct;”
本地$tMMI=DllStructCreate($tagMINMAXINFO)
_SendMessage(wingthandle(“Test”),$WM_GETMINMAXINFO,0,$tMMI,0,“wparam”,“struct*”)
控制台写入(StringFormat(“最大大小:%ix%i\n”、DllStructGetData($tMMI,“MaxSizeX”)、DllStructGetData($tMMI,“MaxSizeY”))
控制台写入(StringFormat(“最大位置:%ix%i\n”、DllStructGetData($tMMI,“MaxPositionX”)、DllStructGetData($tMMI,“MaxPositionY”))
控制台写入(StringFormat(“最小磁道大小:%ix%i\n”、DllStructGetData($tMMI,“MinTrackSizeX”)、DllStructGetData($tMMI,“MinTrackSizeY”))
控制台写入(StringFormat(“最大磁道大小:%ix%i\n”、DLLStructionData($tMMI,“MaxTrackSizeX”)、DLLStructionData($tMMI,“MaxTrackSizeY”))

不能使用
PostMessage
,必须使用
SendMessage
。不能使用
PostMessage
,必须使用
SendMessage
。不能使用
PostMessage
,必须使用
SendMessage
。不能使用
PostMessage
,您必须使用
SendMessage
。\u SendMessage和just SendMessage之间有区别吗?@jasonhansel,
\u SendMessage
SendMessag的自动IT包装