Вызов скрипта
Показано с 1 по 6 из 6

Тема: Вызов скрипта

  1. #1
    Новичок
    Регистрация
    28.05.2014
    Сообщений
    10
    Promo (¢)
    70
    Благодарности
    Получено: 2
    Отправлено: 1

    Вызов скрипта

    Друзья, подскажите пожалуйста, можно ли в MT4 средствами MQL из программы стартануть внешний скрипт - с одной командой копирования файла. А то файл с экспортом валиться в FILE каталог...а нужно его иметь на сервере. Не хочется из-за этой задачи либо писать специальный dll или копировать файл внешними шедулерами.

    Вы не можете благодарить!

  2. #2
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,436
    Promo (¢)
    32,915
    Благодарности
    Получено: 483
    Отправлено: 50
    Цитата Сообщение от mikon Посмотреть сообщение
    можно ли в MT4 средствами MQL из программы стартануть внешний скрипт - с одной командой копирования файла.
    В языке MQL4 есть возможность копировать фалы, поэтому нет надобности запускать через скрипт что-то "инородное", скрипт и скопирует
    FileCopy - Копирует исходный файл из локальной или общей папки в другой файл.
    PHP код:
    bool  FileCopy
       const 
    string  src_file_name,     // имя файла источника 
       
    int           common_flag,       // расположение файла 
       
    const string  dst_file_name,     // имя файла назначения 
       
    int           mode_flags         // способ доступа и/или расположение файла 
       
    ); 

    Вы не можете благодарить!

  3. #3
    Новичок
    Регистрация
    28.05.2014
    Сообщений
    10
    Promo (¢)
    70
    Благодарности
    Получено: 2
    Отправлено: 1
    Цитата Сообщение от wayfarer Посмотреть сообщение
    В языке MQL4 есть возможность копировать фалы, поэтому нет надобности запускать через скрипт что-то "инородное", скрипт и скопирует
    Спасибо. У этой функции, похоже, ограничение - манипуляции с файлом возможны только либо внутри папки общей клиентских терминалов, либо локальной. Нужно копировать в папку никак не связанную с терминалами например \\server1\export.

    Вы не можете благодарить!

  4. #4
    Программист
    Регистрация
    16.08.2012
    Адрес
    Челябинск
    Сообщений
    1,436
    Promo (¢)
    32,915
    Благодарности
    Получено: 483
    Отправлено: 50
    Цитата Сообщение от mikon Посмотреть сообщение
    \\server1\export
    монтируйте сетевой диск.

    Вы не можете благодарить!

  5. #5
    Уважаемый Аватар для viktan
    Регистрация
    18.09.2014
    Адрес
    Far, far away...
    Сообщений
    3,015
    Promo (¢)
    11,590
    Благодарности
    Получено: 2,423
    Отправлено: 1,314
    Цитата Сообщение от wayfarer Посмотреть сообщение
    В языке MQL4 есть возможность копировать фалы,
    Вы бы хоть в справку заглянули, прежде чем советовать функцию:
    Из соображений безопасности в языке MQL4 строго контролируется работа с файлами. Файлы, с которыми проводятся файловые операции средствами языка MQL4, не могут находиться за пределами файловой "песочницы".
    Можно копировать файлы из/в общую для всех терминалов папку или локальную папку конкретного терминала.

    Теперь собственно по сабжу:
    Запуск внешней программы:
    в начале подключаем длл и импортируем функцию:
    PHP код:
    #import "kernel32.dll"
    int      WinExec(string NameExint dwFlags); 
    Затем в тексте программы вызываем:
    PHP код:
    WinExec("notepad.exe"1); 
    В кавычках им программы или командного файла. Второй параметр если 1 - программа запустится в видимом окне, если 0 - в фоновом.
    В настройках индикатора, конечно же, должны стоять разрешения на импорт длл.

    Вы не можете благодарить!
    Хоть и не ново, я напомню снова: перед лицом и друга и врага, Ты - господин несказанного слова, а сказанного слова - ты слуга.
    ©Омар Хайам

  6. #6
    Новичок
    Регистрация
    28.05.2014
    Сообщений
    10
    Promo (¢)
    70
    Благодарности
    Получено: 2
    Отправлено: 1
    Цитата Сообщение от viktan Посмотреть сообщение
    Вы бы хоть в справку заглянули, прежде чем советовать функцию:

    Можно копировать файлы из/в общую для всех терминалов папку или локальную папку конкретного терминала.

    Теперь собственно по сабжу:
    Запуск внешней программы:
    в начале подключаем длл и импортируем функцию:
    PHP код:
    #import "kernel32.dll"
    int      WinExec(string NameExint dwFlags); 
    Затем в тексте программы вызываем:
    PHP код:
    WinExec("notepad.exe"1); 
    В кавычках им программы или командного файла. Второй параметр если 1 - программа запустится в видимом окне, если 0 - в фоновом.
    В настройках индикатора, конечно же, должны стоять разрешения на импорт длл.
    Спасибо за ответ!

    Вы не можете благодарить!

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •