Новая версия платформы MetaTrader 4 build 1370 - страница 4

Vitaly Murlenko  
Я уже выше спрашивал об изменениях прошлого билда. Тайна, покрытая мраком.
Vitaly Murlenko  
Aleksey Vyazmikin #:

Так наверное поставили в план, не думаю, что всё быстро реализуется в коммерческом проекте.

Ух тяжело на исходной форме подвинуть мышкой поле. Нужно в планы вбивать и в долгосрочку откладывать. Не понимаю я этого.

Aleksey Vyazmikin  
Vitaly Murlenko #:

Ух тяжело на исходной форме подвинуть мышкой поле. Нужно в планы вбивать и в долгосрочку откладывать. Не понимаю я этого.

Видимо, Вы давно не работали на окладе :)))

Janis Ozols  
Поддерживаю просьбу @Vitaliy Kuznetsov о публикации списка изменений. Подобно тому, как это сделано для МТ5.
Иван  
На новой версии 1370 не запускается терминал, если его переименовать. На предыдущей версии 1369 (а также на всех других за последние несколько лет) всё прекрасно запускалось и работало!
В чём дело? Зачем эта возможность была убрана? Пробовал на Win7 и Win10 с тем же результатом.
Эксперимент:
1. Устанавливаем терминал стандартным образом из установочного файла. 
2. Запускаем terminal.exe
3. Всё прекрасно запускается и работает
4. Закрываем терминал
5. Переименовываем в terminal2.exe
6. Запускаем terminal2.exe
7. Терминал НЕ запускается.

В чём проблема? Что делать нужно, чтобы заставить запускаться переименованный файл terminal2.exe?
Я использую несколько терминалов. Переименование terminal.exe мне требуется исключительно для мониторинга работы терминалов. 
Программа nncron отслеживает наличие файла с заданным именем в памяти системы и в случае его отсутствия просто запускает его вновь.
Теперь эта возможность исчезла.
Valeriy Yastremskiy  
Иван #:
На новой версии 1370 не запускается терминал, если его переименовать. На предыдущей версии 1369 (а также на всех других за последние несколько лет) всё прекрасно запускалось и работало!
В чём дело? Зачем эта возможность была убрана? Пробовал на Win7 и Win10 с тем же результатом.
Эксперимент:
1. Устанавливаем терминал стандартным образом из установочного файла. 
2. Запускаем terminal.exe
3. Всё прекрасно запускается и работает
4. Закрываем терминал
5. Переименовываем в terminal2.exe
6. Запускаем terminal2.exe
7. Терминал НЕ запускается.

В чём проблема? Что делать нужно, чтобы заставить запускаться переименованный файл terminal2.exe?
Я использую несколько терминалов. Переименование terminal.exe мне требуется исключительно для мониторинга работы терминалов. 
Программа nncron отслеживает наличие файла с заданным именем в памяти системы и в случае его отсутствия просто запускает его вновь.
Теперь эта возможность исчезла.

Они в разных папках, мониторить можно в диспетчере задач посмотреть свойства процесса. там будет путь,откуда установлен процесс, не удобно согласен. Костыль, но хоть как то. Просто сам пользуюсь, переименовывать не додумывался)

Иван  
Valeriy Yastremskiy #:

Они в разных папках, мониторить можно в диспетчере задач посмотреть свойства процесса. там будет путь,откуда установлен процесс, не удобно согласен. Костыль, но хоть как то. Просто сам пользуюсь, переименовывать не додумывался)

Существует множество решений конечно же. И я какое-то конечно же придумаю и в таком случае. Но просто ЗАЧЕМ ломать то, что РАБОТАЛО много лет? В чём плюсы для разработчиков самого терминала?

MetaQuotes  

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

Обновление функционала платформы MetaTrader 4 было остановлено много лет назад и сейчас мы выпускаем только патчи по креш-логам.

Valeriy Yastremskiy  
MetaQuotes #:

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

Обновление функционала платформы MetaTrader 4 было остановлено много лет назад и сейчас мы выпускаем только патчи по креш-логам.

А есть какое то решение идентифицировать процессы разных терминалов, кроме как по пути?

fxsaber  
Valeriy Yastremskiy #:

А есть какое то решение идентифицировать процессы разных терминалов, кроме как по пути?

Ниже код под пятерку можно переделать на четверку.

  static string GetClassName( const HANDLE Handle )
  {
    string Str = NULL;

    short Buffer[MAX_PATH] = {0};

    if (user32::GetClassNameW(Handle, Buffer, ::ArraySize(Buffer)))
      Str = ::ShortArrayToString(Buffer);

    return(Str);
  }

  static int GetTerminalHandles( HANDLE &Handles[] )
  {
    ::ArrayFree(Handles);

    for (HANDLE Handle = user32::GetTopWindow(NULL); Handle; Handle = user32::GetWindow(Handle, GW_HWNDNEXT))
      if (MTTESTER::GetClassName(Handle) == "MetaQuotes::MetaTrader::5.00")
        Handles[::ArrayResize(Handles, ::ArraySize(Handles) + 1) - 1] = Handle;

    return(::ArraySize(Handles));
  }