Здравствуйте, уважаемые трейдеры и программисты!
Загвоздка №2 (неважная при решении вопроса №1) - при размещении в коде И алерта И саунда (если включить их оба), то проигрывается только алерт (перебивает саунд(долгий wav-файл)).
Этот вопрос решается элементарной последовательностью
if (sound || alert) { // сигнал на селл (или бай) if (условие на бай) { ..... if (sound) PlaySound(File_Sound); if (alert) Alert(ls_44); }Если этого не достаточно, ждите других советов.
Здравствуйте, уважаемые трейдеры и программисты!
Прошу помочь со вставкой кода, который бы открывал .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 вроде еще не отменили
Огромное спасибо за код! Прошу прощения, раньше руки не доходили!(((
Мне это уже помогает! Вот... полюбуйтесь: :-) :-) ...(читайте ниже еще).
//+------------------------------------------------------------------+ //| 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. (чтобы тема индексировалась ;) )
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, уважаемые трейдеры и программисты!
Прошу помочь со вставкой кода, который бы открывал .mp3 - файл, когда появится сигнал в моем индикаторе. Сигнал вставить смогу сам. Поэтому выкладываю только код, где у меня работает все не так как надо:
if (sound || alert) {
// сигнал на селл (или бай)
if (условие на бай) {
.....
if (alert) Alert(ls_44);
if (sound) PlaySound(File_Sound);
}
Так вот, загвоздка №1:
Хочу вместо PlaySound вставить код, чтобы при сигнале, запускался mp3-плеер и проигрывалась музыка, а Алерт сообщал бы что именно послужило причиной сигнала.
Загвоздка №2 (неважная при решении вопроса №1) - при размещении в коде И алерта И саунда (если включить их оба), то проигрывается только алерт (перебивает саунд(долгий wav-файл)).
Итоговая просьба: прошу помочь прикрепить мне к индикатору вызов WinMediaPlayer с исполнение в отдельном окне mp3-файла, посколько мой знакомй прогер этого не умеет, а здесь на форуме я много раз искал (или сложное и очень замудреное с доп.программированием на С++ или не подходит). Очень прошу помочь! Надеюсь, программисты МКЛ4 досточно обновили этот язык, чтобы уметь что-то большее, чем просто стандартные "звенелки".