You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AutoHotkey调用SendMessage时如何获取MCM_SETCURSEL消息对应数值

系统控件消息数值获取方法及MCM_SETCURSEL数值说明

通用获取规则

所有Windows标准控件的消息数值都定义在微软Windows SDK的C/C++头文件中,月历控件相关的MCM_前缀消息全部定义在CommCtrl.h头文件里,这类标准消息的数值自Windows首个版本发布后就保持固定,不会随系统版本更新变动,可直接固化到代码中使用。

MCM_SETCURSEL的具体数值

月历控件消息的基准值为MCM_FIRST = 0x1000(与WM_USER常量值一致),MCM_SETCURSEL的宏定义为MCM_FIRST + 0x0002,因此最终数值为:

  • 十六进制:0x1002
  • 十进制:4098

AutoHotkey调用示例

你可以直接在AHK脚本中使用该数值发送消息,注意如果是向外部进程的日历控件发送消息,需要先在目标进程内存空间中写入SYSTEMTIME结构,再将对应内存地址作为lParam参数传入:

; AHK v1 调用示例(已提前获取目标日历控件的hwnd存到calHwnd变量中)
; 此处省略在目标进程申请内存、写入SYSTEMTIME结构的逻辑
SendMessage, 0x1002, 0, 目标进程内SYSTEMTIME结构的内存地址, % calHwnd

其他同类消息的查询方法

遇到其他通用控件消息时,可按照如下规则自行计算:

  • 常见控件消息基准值:
    • 按钮控件BM_FIRST = 0x00F0
    • 编辑框控件EM_FIRST = 0x0050
    • 列表视图控件LVM_FIRST = 0x1000
    • 树视图控件TVM_FIRST = 0x1100
  • 对应消息的偏移量可直接从控件消息官方定义说明中获取,基准值加偏移量就是最终的消息数值。

内容的提问来源于stack exchange,提问作者Gilles Gruwez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:36:09