PlaySound

用来播放声音文件。

bool  PlaySound(
   string  filename      // 文件名
   );

参量

filename

[in]  到声音文件的路径。 如果 filename=NULL,停止回放。

返回值

true – 如果发现文件, 否则 - false.

注释

文件加载到terminal_directory\Sounds 的子目录中,只能播放wav类型文件。

通过NULL参数调用PlaySound() 停止回放。

PlaySound() 函数在策略测试中不工作。

示例:

#include <Trade\Trade.mqh>
#define MAGIC (123)
 
//--- 输入参数
input string          InpFileNameOK  = "ok.wav";               // 成功音频文件
input string          InpFileNameErr = "timeout.wav";          // 错误音频文件
input ENUM_ORDER_TYPE InpOrderType   = ORDER_TYPE_BUY_LIMIT;   // 订单类型
input double          InpLots        = 0.1;                    // 手数
 
//--- 全局变量
CTrade ExtTrade;
 
//+------------------------------------------------------------------+
//| 脚本程序起始函数                                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- 根据交易品种设置来设置幻数和订单执行类型
   ExtTrade.SetExpertMagicNumber(MAGIC);
   ExtTrade.SetTypeFillingBySymbol(Symbol());
//--- 调用带有声音回放的下订单或开仓函数
   OrderSendWithAudio();
  }
//+------------------------------------------------------------------+
//| 该函数下订单或开仓                                                  |
//| 以及播放成功或失败的声音                                             |
//+------------------------------------------------------------------+
void OrderSendWithAudio(void)
  {
   bool    res=true;
   MqlTick tick= {};
 
   ResetLastError();
   if(!SymbolInfoTick(Symbol(),tick))
     {
      Print("SymbolInfoTick() failed. Error code: ",GetLastError());
      PlaySound(InpFileNameErr);
      return;
     }
//--- 向服务器发送请求
   switch(InpOrderType)
     {
      case ORDER_TYPE_BUY :
         res=ExtTrade.Buy(InpLots);
         break;
      case ORDER_TYPE_BUY_LIMIT :
         res=ExtTrade.BuyLimit(InpLots,NormalizeDouble(tick.ask-100*Point(),Digits()));
         break;
      case ORDER_TYPE_BUY_STOP :
         res=ExtTrade.BuyStop(InpLots,NormalizeDouble(tick.ask+100*Point(),Digits()));
         break;
      case ORDER_TYPE_SELL :
         res=ExtTrade.Sell(InpLots);
         break;
      case ORDER_TYPE_SELL_LIMIT :
         res=ExtTrade.SellLimit(InpLots,NormalizeDouble(tick.bid+100*Point(),Digits()));
         break;
      case ORDER_TYPE_SELL_STOP :
         res=ExtTrade.SellStop(InpLots,NormalizeDouble(tick.bid-100*Point(),Digits()));
         break;
      default :
         res=false;
     }
   if(!res)
      Print("Error ",GetLastError());
   Print(ExtTrade.ResultRetcodeDescription());
 
//--- 如果请求被接受,则播放ok.wav声音
   if(ExtTrade.ResultRetcode()==TRADE_RETCODE_DONE)
      PlaySound(InpFileNameOK);
   else
      PlaySound(InpFileNameErr);
  }

另见

资源