На MSDN (http://msdn.microsoft.com/en-us/library/windows/desktop/ms687393(v=vs.85).aspx) написано:
Note This function is provided only for compatibility with 16-bit Windows. Applications should use the CreateProcess function.
Так что лучше использовать ShellExecute.
P. S. Ваш код не компилируется - нет закрывающего #import.
Спасибо за наводку.
Вот разобрался, компилирую и запускаю вот этот скрипт, все равно не работает. Помогите кто-нибудь! Вобще хоть кто-то может сейчас запускать приложения из MQL4?
Кладу Macros.exe в папку files, включаю dll в настройках MT4. может что-то еще.
//+------------------------------------------------------------------+ //| template.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" //---- импорт функции из внешней DLL #import "shell32.dll" int ShellExecuteA(int hwnd,string lpOperation,string lpFile,string lpParameters,string lpDirectory,int nShowCmd); #import //---- константы открытия\показа (параметр nShowCmd) #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- запуск командной строки ShellExecuteA(WindowHandle(Symbol(),0),"open","Macros.exe",NULL,NULL,SW_SHOWNORMAL); //---- return(0);
}
Спасибо за наводку.
Вот разобрался, компилирую и запускаю вот этот скрипт, все равно не работает. Помогите кто-нибудь! Вобще хоть кто-то может сейчас запускать приложения из MQL4?
Кладу Macros.exe в папку files, включаю dll в настройках MT4. может что-то еще.
ShellExecuteW(NULL, NULL, <полный путь к файлу>, <список ключей запуска>, <рабочий каталог программы>, SW_SHOWNORMAL);
При указании пути не забывайте, что одиночный слэш - это управляющий символ. Для получения слэша его нужно дублировать: "C:\\Windows\\system32\\".
Проверил запуск терминала при помощи скрипта, запущенном на другом терминале - работает.
Не нужно ничего располагать в папке files - это ограничение только для "чистого" MQL4/5. При использовании WinAPI это ограничение некому контролировать.
При указании пути не забывайте, что одиночный слэш - это управляющий символ. Для получения слэша его нужно дублировать: "C:\\Windows\\system32\\".
Проверил запуск терминала при помощи скрипта, запущенном на другом терминале - работает.
Не нужно ничего располагать в папке files - это ограничение только для "чистого" MQL4/5. При использовании WinAPI это ограничение некому контролировать.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
3) тестирую на вот этом коде (код нашел на просторах интернета) - ничего не работает(( (отдельно приложение запускается и работает)