欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

使用 MetaTrader 4 脚本获取弹出警报 MT4 的消息

author emer | 247 人阅读 | 0 人评论 |

这是使用外部 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小时后评论,即可解锁附件下载
立即登录