向窗口发送消息
向指定窗口发送 Win32 消息。需要了解 SendMessage 才能正确选用消息和参数。只要移动、关闭、置顶窗口,优先用 窗口操作。
当前模块定义
sys:sendMessage输入 7 · 输出 2 · 枚举 1
输入参数
- 操作类型
operationEnum必填SendMessage(等待返回,LParam为数字默认SendMessageSendMessage(等待返回,LParam为文本SendMessageTextLParamPostMessage(不等待返回PostMessage - 窗口句柄hWnd
hWndInteger可选留空或0表示前台窗口
- 消息
wMsgText可选要发送的消息。
- wParam参数
wParamText可选 - lParam参数
lParamText可选 - lParam参数(文本)
textLParamText可选文本内容
- 失败后停止
stopIfFailBoolean可选失败后是否停止动作
输出参数
- 是否成功
isSuccessBoolean操作是否成功
- 返回值
rtnInteger返回值,依据消息的不同具有不同的含义,请查询对应API的文档。
概述
0.11.4 起提供。默认的 SendMessage 要求 lParam 为数字;需要传文本 lParam,或不等待返回时,换操作类型。
向窗口发送消息
使用SendMessage Win32Api向窗口发送消息。使用方法请搜索SendMessage Win32 API接口。
参数说明
操作类型:
- SendMessage(等待返回,LParam 为数字)
- SendMessage(等待返回,LParam 为文本)
- PostMessage(不等待返回)
窗口句柄hWnd:目标窗口。留空或 0 表示前台窗口。
消息:十进制(如 1234)或十六进制(如 0x0112)。
wParam参数:十进制或十六进制。
lParam参数:仅数字 lParam 的两种操作。十进制或十六进制。
lParam参数(文本):仅 LParam 为文本的 SendMessage。
失败后停止:失败是否中止动作。默认开启。
输出
- 是否成功:是否发送成功。
- 返回值:仅两种 SendMessage。含义随消息而变,见对应 API 文档。
示例
用窗口消息把窗口最大化:
示例:发送窗口消息
获取窗口信息/查找窗口前台窗口
向窗口发送消息最大化窗口
等待时间等待 1000 ms
向窗口发送消息最小化窗口
等待时间等待 1000 ms
向窗口发送消息还原窗口
限制与排障
发错消息可能导致目标程序异常。先确认句柄来自 获取窗口信息/查找窗口。常用 WM_SYSCOMMAND 见 WM_SYSCOMMAND。
相关链接
更新于