Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Создавай темы на форуме и увеличивай рейтинг!
Denis Masalsky
169
Denis Masalsky 2014.09.04 18:12 

Здравствуйте, уважаемые трейдеры и программисты!

Прошу помочь со вставкой кода, который бы открывал .mp3 - файл, когда появится сигнал в моем индикаторе. Сигнал вставить смогу сам. Поэтому выкладываю только код, где у меня работает все не так как надо:

 

  if (sound || alert) {
// сигнал на селл (или бай)
  if (условие на бай) {
  .....

if (alert) Alert(ls_44);
if (sound) PlaySound(File_Sound);

 Так вот, загвоздка №1:

Хочу вместо PlaySound вставить код, чтобы при сигнале, запускался mp3-плеер и проигрывалась музыка, а Алерт сообщал бы что именно послужило причиной сигнала.

Загвоздка №2 (неважная при решении вопроса №1) - при размещении в коде И алерта И саунда (если включить их оба), то проигрывается только алерт (перебивает саунд(долгий wav-файл)).

 Итоговая просьба: прошу помочь прикрепить мне к индикатору вызов WinMediaPlayer с исполнение в отдельном окне mp3-файла, посколько мой знакомй прогер этого не умеет, а здесь на форуме я много раз искал (или сложное и очень замудреное с доп.программированием на С++ или не подходит). Очень прошу помочь! Надеюсь, программисты МКЛ4 досточно обновили этот язык, чтобы уметь что-то большее, чем просто стандартные "звенелки".

Alexey Viktorov
5195
Alexey Viktorov 2014.09.05 04:46  
e-partner:

Здравствуйте, уважаемые трейдеры и программисты!


Загвоздка №2 (неважная при решении вопроса №1) - при размещении в коде И алерта И саунда (если включить их оба), то проигрывается только алерт (перебивает саунд(долгий wav-файл)).


Этот вопрос решается элементарной последовательностью

  if (sound || alert) {
// сигнал на селл (или бай)
  if (условие на бай) {
  .....

if (sound) PlaySound(File_Sound);
if (alert) Alert(ls_44);
} 
Если этого не достаточно, ждите других советов.
Victor Nikolaev
Модератор
14081
Victor Nikolaev 2014.09.05 04:57  
e-partner:

Здравствуйте, уважаемые трейдеры и программисты!

Прошу помочь со вставкой кода, который бы открывал .mp3 - файл, когда появится сигнал в моем индикаторе. Сигнал вставить смогу сам. Поэтому выкладываю только код, где у меня работает все не так как надо:

 

  if (sound || alert) {
// сигнал на селл (или бай)
  if (условие на бай) {
  .....

if (alert) Alert(ls_44);
if (sound) PlaySound(File_Sound);

 Так вот, загвоздка №1:

Хочу вместо PlaySound вставить код, чтобы при сигнале, запускался mp3-плеер и проигрывалась музыка, а Алерт сообщал бы что именно послужило причиной сигнала.

Загвоздка №2 (неважная при решении вопроса №1) - при размещении в коде И алерта И саунда (если включить их оба), то проигрывается только алерт (перебивает саунд(долгий wav-файл)).

 Итоговая просьба: прошу помочь прикрепить мне к индикатору вызов WinMediaPlayer с исполнение в отдельном окне mp3-файла, посколько мой знакомй прогер этого не умеет, а здесь на форуме я много раз искал (или сложное и очень замудреное с доп.программированием на С++ или не подходит). Очень прошу помочь! Надеюсь, программисты МКЛ4 досточно обновили этот язык, чтобы уметь что-то большее, чем просто стандартные "звенелки".

 

 

 


WinApi вроде еще не отменили
Dmitry Fedoseev
41249
Dmitry Fedoseev 2014.09.05 08:31  

здесь запуск плеера 

Правда одному уже не помогло, но может вам поможет, кто его знает. 

Denis Masalsky
169
Denis Masalsky 2015.03.28 00:58  
Integer:

здесь запуск плеера 

Правда одному уже не помогло, но может вам поможет, кто его знает. 

 

 Огромное спасибо за код! Прошу прощения, раньше руки не доходили!(((

Мне это уже помогает!  Вот... полюбуйтесь: :-) :-) ...(читайте ниже еще).

 

//+------------------------------------------------------------------+
//|                                                    e-partner.mq4 |
//|                   Copyright 2005-2014, MetaQuotes Software Corp. |
//+------------------------------------------------------------------+
#property copyright   ""
#property link        ""
#property strict

#import "shell32.dll"
   int ShellExecuteA(int hwnd,uchar & lpOperation[],uchar & lpFile[],uchar & lpParameters[],uchar & lpDirectory[],int nShowCmd);
#import //закрытие импорта

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_levelcolor DimGray
#property indicator_color1 DodgerBlue
#property indicator_level1 20.0
input int InpCCIPeriod=14; // CCI Period
extern bool alert = true;
string MediaFile;
//+-------------------------------------------------+
//| Init                                            |
//+-------------------------------------------------+
int OnInit(void) {
   uchar _lpFile[];
   uchar _lpOperation[];
   uchar _lpParameters[];
   uchar _lpDirectory[];   
   string lpOperation="open";
   string lpFile="C:\\Program Files\\Windows Media Player\\wmplayer.exe";
   string lpParameters=MediaFile;
   string lpDirectory="";
   StringToCharArray(lpOperation,_lpOperation);
   StringToCharArray(lpFile,_lpFile);
   StringToCharArray(lpParameters,_lpParameters);
   StringToCharArray(lpDirectory,_lpDirectory);
   ShellExecuteA(0,_lpOperation,_lpFile,_lpParameters,_lpDirectory,1);
return 0;
}
//+-------------------------------------------------+
//| OnCalculate                                     |
//+-------------------------------------------------+
void OnCalculate(void) {
   PlayInWinPlayer("C:\\Windows\\Media\\tada.wav");  }           // вот его ни в какую не хочет понимать, открывать, просто ВМП работает.

int OnCalculate(const int rates_total,                      // это и ниже до скобки вставил просто так, зато стало работать от чего то! =DDD
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{  return (0);}

void PlayInWinPlayer(string MediaFile)
{  uchar _lpFile[];
   uchar _lpOperation[];
   uchar _lpParameters[];
   uchar _lpDirectory[];   
   string lpOperation="open";
   string lpFile="C:\\Program Files\\Windows Media Player\\wmplayer.exe";
   string lpParameters=MediaFile;
   string lpDirectory="";
   StringToCharArray(lpOperation,_lpOperation);
   StringToCharArray(lpFile,_lpFile);
   StringToCharArray(lpParameters,_lpParameters);
   StringToCharArray(lpDirectory,_lpDirectory);
   ShellExecuteA(0,_lpOperation,_lpFile,_lpParameters,_lpDirectory,1);
   PlayInWinPlayer("C:\\Windows\\Media\\tada.wav");                  // это не работает: что есть что нет
}

 

Помогите, пожалуйста, его довести до ума!

При включении опций индюка он запускает-таки (УРАА!!!) МП3 плеер Windows Media Player. Только файл никак не запускает!((( Есть мелкие ошибки, я добивался такого, что вообще ни одной ошибочки и коммента не было. Вот бы также!

Прошу очень!).

теги: как вставить windows media player в индикатор mql4, как вставить проигрыватель mp3-файлов в индикатор MT4.   (чтобы тема индексировалась ;) )

/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий