PlaySound

サウンドファイルを再生します。

bool  PlaySound(
  string  filename      // ファイル名
  );

パラメータ

filename

[in]  サウンドファイルへのパスファイル名が NULL の場合は、再生が停止されます。

戻り値

ファイルが見つかった場合は true、それ以外の場合は false

注意事項

ファイルは terminal_directory\Sounds またはそのサブディレクトリに位置しなければいけません。WAVファイルのみが再生されます。

PlaySound() の NULL パラメータでの呼び出しは、再生を停止します。

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);
 }

参照

リソース