跳到主要内容

向窗口发送消息

向指定窗口发送 Win32 消息。需要了解 SendMessage 才能正确选用消息和参数。只要移动、关闭、置顶窗口,优先用 窗口操作

当前模块定义

sys:sendMessageWindows系统Action
标准模块
输入 7 · 输出 2 · 枚举 1

输入参数

  • 操作类型operationEnum必填
    填写 固定输入默认 SendMessage
    SendMessage(等待返回,LParam为数字默认SendMessage
    SendMessage(等待返回,LParam为文本SendMessageTextLParam
    PostMessage(不等待返回PostMessage
  • 窗口句柄hWndhWndInteger可选

    留空或0表示前台窗口

    填写 输入或变量
  • 消息wMsgText可选

    要发送的消息。

    填写 输入或变量
  • wParam参数wParamText可选
    填写 输入或变量
  • lParam参数lParamText可选
    填写 输入或变量条件 排除:SendMessageTextLParam默认 0
  • lParam参数(文本)textLParamText可选

    文本内容

    填写 输入或变量条件 仅:SendMessageTextLParam
  • 失败后停止stopIfFailBoolean可选

    失败后是否停止动作

    填写 固定输入默认 true

输出参数

  • 是否成功isSuccessBoolean

    操作是否成功

  • 返回值rtnInteger

    返回值,依据消息的不同具有不同的含义,请查询对应API的文档。

    条件 仅:SendMessage, SendMessageTextLParam

概述

0.11.4 起提供。默认的 SendMessage 要求 lParam 为数字;需要传文本 lParam,或不等待返回时,换操作类型。

向窗口发送消息

使用SendMessage Win32Api向窗口发送消息。使用方法请搜索SendMessage Win32 API接口。
操作类型
窗口句柄hWnd
 
留空或0表示前台窗口
消息
 
要发送的消息。
wParam参数
 
lParam参数
0
是否成功
-- 选择变量 --
操作是否成功
返回值
-- 选择变量 --
返回值,依据消息的不同具有不同的含义,请查询对应API的文档。

参数说明

操作类型

  • SendMessage(等待返回,LParam 为数字)
  • SendMessage(等待返回,LParam 为文本)
  • PostMessage(不等待返回)

窗口句柄hWnd:目标窗口。留空或 0 表示前台窗口。

消息:十进制(如 1234)或十六进制(如 0x0112)。

wParam参数:十进制或十六进制。

lParam参数:仅数字 lParam 的两种操作。十进制或十六进制。

lParam参数(文本):仅 LParam 为文本的 SendMessage。

失败后停止:失败是否中止动作。默认开启。

输出

  • 是否成功:是否发送成功。
  • 返回值:仅两种 SendMessage。含义随消息而变,见对应 API 文档。

示例

用窗口消息把窗口最大化:

示例:发送窗口消息
获取窗口信息/查找窗口前台窗口
向窗口发送消息最大化窗口
等待时间等待 1000 ms
向窗口发送消息最小化窗口
等待时间等待 1000 ms
向窗口发送消息还原窗口

限制与排障

发错消息可能导致目标程序异常。先确认句柄来自 获取窗口信息/查找窗口。常用 WM_SYSCOMMANDWM_SYSCOMMAND

相关链接

更新于