使用 MetaTrader 4 脚本获取弹出警报 MT4 的消息
这是使用外部 DLL“user32.dll”的小脚本。
1.导入Dll及其函数
#定义WM_GETTEXTLENGTH0xE #定义WM_GETTEXT0xD #进口“user32.dll” 整数查找窗口W(细绳lp类名,细绳lp窗口名称); 整数查找窗口ExW(整数hWnd1,整数hWnd2,细绳lpsz1,细绳lpsz2); 整数发送消息A(整数嗯,整数w消息,整数w参数,整数l参数); 整数发送消息A(整数嗯,整数w消息,整数w参数,字符&l参数[]);//编辑lParam接收值返回 #进口//+------
2 获取警报对话框的句柄(父窗口)
使用 FindWindowW 到特定的父窗口句柄
整数汉德 =0;//父窗口句柄 整数CHwnd =0;//文本框句柄 Hwnd = 查找窗口W(“#32770”,“警报”);//将 mql4 的 FindWindowA 替换为 FindWindowW
3. 获取Dialog(子窗口)中文本框(或标签)的句柄
使用 FindWindowExW 指定子窗口句柄
//获取对话框中文本框的句柄 CHwnd = FindWindowExW(Hwnd,0,“编辑”,无效的);//查找所有类名为“Edit”的控件
3. 从文本框中获取消息内容
3.1牛需要指定字符串的长度:
//获取文本框中Message的内容 //获取消息字符串的长度 整数文本长度 = SendMessageA(CHwnd, WM_GETTEXTLENGTH,0,0);
3.2 获取内容
细绳内容消息 =””; 字符ch[540]; 为了(整数我=0;我 <数组大小(ch); i++) ch[i] =0x000; 数组初始化(通道,0x000); 整数长度 = SendMessageA(CHwnd, WM_GETTEXT, textLength +1,ch); 为了(整数我=0;我<长度; i++) 内容消息 +=字符转字符串(ch[i]); 打印(__功能__,"--> 内容消息 = "+ 内容消息);
获取教程视频的更多信息:
附件下载
📎 catchmeifyoucan.mq4 (2.34 KB)
📎 script_alert_messenger.mq4 (1.29 KB)
Source: MQL5 #41986
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录
