PlaySound

사운드 파일을 재생.

bool  PlaySound(
   string  filename      // 파일 이름
   );

매개변수

파일명

[in]  사운드 파일의 경로. filename=NULL 이면, 재생이 중지됩니다.

값 반환

발견하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

주의

파일은 terminal_directory\Sounds 또는 그 하위 디렉토리에 있어야 합니다. WAV 파일만 재생됩니다.

NULL 매개변수를 사용하여 PlaySound()를 호출하면 재생이 중지됩니다.

PlaySound() function는 전략 테스터에서 기능이 작동하지 않음.

예:

#include <Trade\Trade.mqh>
#define MAGIC (123)
 
//--- 입력 매개변수
input string          InpFileNameOK  = "ok.wav";               // success audio file
input string          InpFileNameErr = "timeout.wav";          // error audio file
input ENUM_ORDER_TYPE InpOrderType   = ORDER_TYPE_BUY_LIMIT;   // order type
input double          InpLots        = 0.1;                    // lots
 
//--- 글로벌 변수
CTrade ExtTrade;
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
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);
  }

추가 참조

리소스