【问题标题】:WM_GETMINMAXINFO in AutoItAutoIt 中的 WM_GETMINMAXINFO
【发布时间】:2014-07-06 17:15:42
【问题描述】:

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

【问题讨论】:

  • 你不能使用PostMessage,你必须使用SendMessage

标签: windows winapi autoit


【解决方案1】:

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

#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")))

【讨论】:

  • _SendMessage 和只是 SendMessage 有区别吗?
  • @jasonhansel,_SendMessageSendMessage 周围的 AutoIt 包装器。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 1970-01-01
  • 2015-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多