Есть ли возможность программно обновить список навигатора (эксперты/скрипты...) без перезагрузки терминала?
Есть ли возможность обновить список навигатора (эксперты/скрипты...) без перезагрузки терминала?
Нужно скомпилировать какой нибудь (любой код, можно и повторно) код, тогда навигатор обновится.
да да. эт понятно.
нужно без открытия эдитора.
то есть нужно как-нибудь программно, из эксперта.
А больше никак.
Ой, а про какой терминал речь? - 4/5?
В 5-ке есть в контекстном меню навигатора команда "Обновить", в отличии от 4-ки.
А программно? - компилировать советником какой то код (вызывать через winAPI команду компиляции)? - не получится.
В сервисдеске висит моя заявка:
Новые "неродные" .ex5, то есть созданные компилятором mql5.exe, запущенного не МЕ-ром.
Описание проблемы
Терминал не видит вновь появившиеся скомпилированные не из МЕ .ex5-файлы. Видит их только после перезагрузки терминала. Видимо, метаэдитор сообщает терминалу о новых скомпилированных программах, а если такого сообщения не поступает, то терминал и не знает о появлении новых .ex5.
Ожидаемый результат
Возможно ли добавить функцию самостоятельного постоянного сканирования папки MQL5 на предмет появления новых скомпилированных файлов терминалом?
Alexander Saidullin 2010.08.16 11:44
Спасибо, мы подумаем над этим.
В сервисдеске висит моя заявка:
joo:
Ой, а про какой терминал речь? - 4/5?
в принципе про оба. но тема про пятерку.
В 5-ке есть в контекстном меню навигатора команда "Обновить", в отличии от 4-ки.
как бы добраться до ID этой команды... spy в ломы запускать
надо бы её приподнять. а то уже второй год пошел.
Приподнял.
просто теоретически можно было бы компилировать какую нибудь пустышку, чтоб окно обновлялось само.
разобрался, spy таки помог
Я в той панели конкурсной в 2010 г. варганил такое:
string terminal_data_path = TerminalInfoString(TERMINAL_DATA_PATH); uchar path[]; StringToCharArray(terminal_data_path+"\\mql5.exe MQL5\\Experts\\Fatpanel\\FatPanel.mq5",path); int result = WinExec(path, 2); MessageBox("All changes are saved","Message"); keybd_event(0xA2, 0, 0, 0); keybd_event(0x52, 0, 0, 0); keybd_event(0xA2, 0, 0, 0); keybd_event(0x52, 0, 0, 0); keybd_event(0x52, 0, 2, 0); keybd_event(0xA2, 0, 2, 0);
Алексей, если не секрет, какое решение нашли?
Я в той панели конкурсной в 2010 г. варганил такое:
#define ID_REFRESH_NAVIGATOR 0x8288 int hWnd=(int)ChartGetInteger(ChartID(), CHART_WINDOW_HANDLE); hWnd=GetParent(hWnd); hWnd=GetParent(hWnd); hWnd=GetParent(hWnd); SendMessageW(hWnd, WM_COMMAND, ID_REFRESH_NAVIGATOR, 0);
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть ли возможность программно обновить список навигатора и без перезагрузки терминала?
каким нибудь сообщением его окну или еще как ?