Разработчикам MetaEditor. Как послать команду на открытие файла сторонней программой

 

Пишу программу, которая должна запускать MetaEditor и открывать в нём файл .mq5. Посмотрел в ключах реестра команду open HKEY_CLASSES_ROOT\MQL5.File\shell\open.

Запускаю metaeditor.exe с параметром /dde, соединяюсь с dde сервером METAED~1, посылаю команду [open("%1")], где %1 заменяю путём к открываемому файлу. Получаю ответ, что команда выполнена успешно. Но MetaEditor не открывает файл.

Уважаемые разработчики, помогите пожалуйста. 

Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
 
toropchin:

Пишу программу, которая должна запускать MetaEditor и открывать в нём файл .mq5. Посмотрел в ключах реестра команду open HKEY_CLASSES_ROOT\MQL5.File\shell\open.

Запускаю metaeditor.exe с параметром /dde, соединяюсь с dde сервером METAED~1, посылаю команду [open("%1")], где %1 заменяю путём к открываемому файлу. Получаю ответ, что команда выполнена успешно. Но MetaEditor не открывает файл.

Уважаемые разработчики, помогите пожалуйста. 

А на чем пишете?

Скорее всего вам поможет WinAPI, что-то типа того (это синтаксис Delphi):

ShellExecute(0, 'open', 'metaeditor.exe', <путь к вашему файлу>, nil, SW_SHOW);

или вот так

ShellExecute(0, 'open', <путь к вашему файлу>, nil, nil, SW_SHOW);
 
Не надо указывать никаких /dde, достаточно metaeditor.exe имя_файла

 
Renat:
Не надо указывать никаких /dde, достаточно metaeditor.exe имя_файла

Первым делом так и попробовал - не сработало. Указанный мной способ закрузки файла в приложение работает во многих программах. Да и в реестре прописано, что именно так происходит привязка mq5 файлов к команде открытия в связанном приложении.
 
Сегодня разберемся

 
Renat:
Не надо указывать никаких /dde, достаточно metaeditor.exe имя_файла

Попробовал вот так:

ShellExecute(0,'open','E:\_TOROP~1\HiAsm\compiler\MQL5\MT5\METAED~1.EXE', 'E:\_Toropchin\HiAsm\Projects\Project1.mq5', nil, SW_SHOW);
Редактор открывается, но не загружает файл.
 
toropchin:

Попробовал вот так:

Редактор открывается, но не загружает файл.

Вам надо вот так: HINSTANCE Result = ShellExecute(Handle, "open", "E:\\_BC\\_BC_2010\\MetaEditor\\metaeditor.exe\0" , "/dde MACD.mq5\0", "E:\\_BC\\_BC_2010\\MetaEditor\\", SW_SHOW);

Не указывайте в командной строке тропу, а укажите ее по умолчанию.

 
Была ошибка с открытием файла, уже исправили - выйдет в очередном билде на днях.
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
Файловые операции / FileOpen - Документация по MQL5
Причина обращения: