[WIN32]Windows API宏SendMessage

来源:互联网 发布:淘宝挣钱吗 编辑:程序博客网 时间:2024/04/30 16:14
这个函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而和函数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 NotepadWinWait 无标题 - 记事本SendMessage,0xC,, "哥要你改标题",,A   ; 0XC 为 WM_SETTEXT ;SendMessage, 0xC, 0, "New Notepad Title"MsgBox 点击确定将关闭记事本WM_CLOSE=0x10WM_QUIT=0x12SendMessage,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 0
原创粉丝点击