Есть ли возможность программно обновить список навигатора (эксперты/скрипты...) без перезагрузки терминала?

 

Есть ли возможность программно обновить список навигатора и без перезагрузки терминала?

каким нибудь сообщением его окну или еще как ?

 
sergeev:
Есть ли возможность обновить список навигатора (эксперты/скрипты...)  без перезагрузки терминала?
Нужно скомпилировать какой нибудь (любой код, можно и повторно) код, тогда навигатор обновится.
 
joo:
Нужно скомпилировать какой нибудь (любой код, можно и повторно) код, тогда навигатор обновится.

да да. эт понятно.

нужно без открытия эдитора.

то есть нужно как-нибудь программно, из эксперта.

 

А больше никак.

Ой, а про какой терминал речь? - 4/5?

В 5-ке есть в контекстном меню навигатора команда "Обновить", в отличии от 4-ки.


А программно? - компилировать советником какой то код (вызывать через winAPI команду компиляции)? - не получится.

В сервисдеске висит моя заявка:

Новые "неродные" .ex5, то есть созданные компилятором mql5.exe, запущенного не МЕ-ром.

Suggestions, MetaTrader 5 Client, Открыта, Начата: 2010.08.14 23:08, #20721

Описание проблемы

Терминал не видит вновь появившиеся  скомпилированные не из МЕ .ex5-файлы. Видит их только после перезагрузки терминала. Видимо, метаэдитор сообщает терминалу о новых скомпилированных программах, а если такого сообщения не поступает, то терминал и не знает о появлении новых .ex5.

Ожидаемый результат

Возможно ли добавить функцию самостоятельного постоянного сканирования папки MQL5 на предмет появления новых скомпилированных файлов терминалом?

Alexander Saidullin 2010.08.16 11:44

Спасибо, мы подумаем над этим.

 
joo:

В сервисдеске висит моя заявка:

надо бы её приподнять. а то уже второй год пошел.
 

joo:

Ой, а про какой терминал речь? - 4/5?

в принципе про оба. но тема про пятерку.

В 5-ке есть в контекстном меню навигатора команда "Обновить", в отличии от 4-ки.

как бы добраться до ID этой команды...  spy в ломы запускать


 
sergeev:
надо бы её приподнять. а то уже второй год пошел.
Приподнял.
 
joo:
Приподнял.

просто теоретически можно было бы компилировать какую нибудь пустышку, чтоб окно обновлялось само.


 

разобрался, 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); 

 
Vigor:
Алексей, если не секрет, какое решение нашли?

Я в той панели конкурсной в 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);