Как на MQL4 произвести запуск другой программы с расширением exe, как читать и писать данные на диск в файлы типа xls или txt?

 
Скажите, пожалуйста, как при написании индикатора на MQL4 произвести запуск другой программы с расширением exe, для ее выполнения и последующего использования результатов в индикаторе? Как читать и писать данные на диск в файлы типа xls или txt?
 

trading_ivest
писал (а):

Скажите, пожалуйста, как при написании индикатора на MQL4 произвести запуск другой программы с расширением exe, для ее выполнения и последующего использования результатов в индикаторе? Как читать и писать данные на диск в файлы типа xls или txt?

Для запуска программы нужно загрузить библиотеку 'Kernel32.dll' и вызвать её функцию CreateProcess (см. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dllproc/base/createprocess. asp). Но так как в MQL нет возможности создавать структуры, то вероятно придётся написать пару строк в среде типа MS Visual C++, или ей подобной для создания своей библиотеки с интерфейсом типа StartApp. Затем включить её в файл *.mq4 (#import) :
#import "YourLibrary.dll"
   bool StartApp();
#import

О файловом вводе/выводе можно прочесть в справочном руководстве редактора - Ctrl+D, ветвь дерева File Functions.
 
Попробуйте так:
 
#import "kernel32.dll"
int      WinExec("your_program.exe", 0);
сам не проверял, прочёл здесь: https://www.mql5.com/ru/forum/51553 . Надеюсь поможет. :)
 
Прошу прощения перепутал немного строчки... нужно так:

Это вначале программы (объявление импортируемой функции):
#import "kernel32.dll"
int      WinExec(string NameEx, int dwFlags);
и там где надо произвести запуск пишешь это:
WinExec("notepad.exe", 1); 
Где на месте «notepad.exe» твоя программа. Когда второй параметр равен 1 — это означает запустить программу с видимым окном, когда 0 — в фоновом режиме.
 
Попробовал, всё работает. Главное при запуске эксперта не забыть поставить галочку «Разрешить импорт функций из DLL» и убрать галочку «Ручное подтверждение вызвов».
Причина обращения: