[WIN32]Windows API宏SendMessage

188 篇文章 3 订阅
57 篇文章 1 订阅
这个函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而和函数PostMessage不同,PostMessage是将一个消息寄送到一个线程的消息队列后就立即返回。

函数原型
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)

AutoHotkey中的参数顺序如下:

SendMessage, Msg [, wParam, lParam, Control, WinTitle, WinText, ExcludeTitle, ExcludeText, Timeout]

SendMessage,Msg , wParam, lParam,控件标识可以空, 窗口标识


hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。
Msg:指定被发送的消息。
wParam:指定附加的消息特定信息。
IParam:指定附加的消息特定信息。
返回值:返回值指定消息处理的结果,依赖于所发送的消息。



备注:在WinUser.h中根据是否已定义Unicode被定义为SendMessageW或SendMessageA,
头文件:winuser.h;
库文件:user32.lib。

AutoHotkey调用方式:

; 例子: ahk中的函数 "SendMessage" 来改记事本窗口标题。
#z::
Run Notepad
WinWait 无标题 - 记事本
SendMessage,0xC,, "哥要你改标题",,A   ; 0XC 为 WM_SETTEXT 
;SendMessage, 0xC, 0, "New Notepad Title"
MsgBox 点击确定将关闭记事本
WM_CLOSE=0x10
WM_QUIT=0x12
SendMessage,WM_CLOSE, 0, 0,,哥要你改标题


c#语言:

[DllImport("user32.dll", EntryPoint="SendMessage")]
public static extern int SendMessage (int hwnd,int wMsg,string wParam,string lParam);

SendMessage的用法

SendMessage(句柄,消息的标识符,"取决于消息","取决于消息");

 

从CSDN中可以查到消息 WM_SETTEXT =0x000C

那么可得
SendMessage(handelA, 0x000C, "", "哥要你改标题");


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值