Есть определённая потребность запустить внешний VBS скрипт из советника (например произвести перезагрузку терминала или компьютера)
Кто знает как это можно сделать?
Заранее благодарю за помощь!
Есть прога в нете. Может создать exe типа закрыть выбранную прогу или открыть её. Далее прописываем этот exe в Винду, чтоб выполнялась каждую 1 минуту (скажем). Это не надо объяснять??? Если что-то спросить - в личку
Не понял предложения. Как можно сделать из эксперта вот это?
***************
Start the MS-DOS command prompt.
***************
ну давайте-ка пораскинем мозгами.
у нас имеется: 1 vb script, 1 утилита CScript, 1 советник из которого мы можем вызывать функции из сторонних библиотек.
Далее у нас есть Winapi функция ShellExecute (должна подойти), которая сможет выполнить утилиту.
...
Тут уже мне Slava в 2006 году ответил:
https://www.mql5.com/ru/forum/53320
Модератор
Slawa 16.01.2006 13:14
#import "kernel32.dll"
int WinExec(string lpCmdLine, int uCmdShow);
WinExec("F:\\PhoneCall.exe", 1);
Буду пробовать данный вариант пока что.
Есть определённая потребность запустить внешний VBS скрипт из советника (например произвести перезагрузку терминала или компьютера)
Кто знает как это можно сделать?
Заранее благодарю за помощь!
Можно завести в папке files советника пустой командный файл vbs (или js). Что бы не ругался, в нем написать "rem Тру-ля-ля". В Tasks (Назначенные задания) прописать его периодическое исполнение. Из советника в файл можно какую угодно последовательность команд записать. Только нужно предусмотреть ограничение на количество запусков.
Решение не зависимо от настроек импорта длл, имеет некоторые удобства в защищенной сети.
Всем спасибо за ответы!
В итоге пришёл вот к такому решению.
Запуск через WinExec командного файла bat, через который запускается скрипт, выполняющий ребут компа.
Немного сложновато, но стандартное предложение WinExec("shutdown /t 0 /r", 0); у меня работать отказывалось почему-то.
#import "kernel32.dll" int WinExec(string lpCmdLine,int uCmdShow); //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- WinExec("E:\\SOME_PATH\\experts\\Reboot.bat",1); //---- return(0); } Reboot.bat ********** cmd /c start /min E:\SOME_PATH\experts\Reboot.Wsf /Reboot:YES pause ********* Reboot.Wsf ********* <job> <script language="VBScript"> On Error Resume Next Set oArgs = WScript.Arguments.Named Set objNetwork = WScript.CreateObject("WScript.Network") MachineName = objNetwork.ComputerName If oArgs.Item("Reboot") = "YES" Then dim OpSysSet, obj Set OpSysSet = GetObject("winmgmts:{impersonationLevel=impersonate," & "(Shutdown)}//./root/cimv2").ExecQuery ("SELECT * FROM Win32_OperatingSystem" & " WHERE Primary=true") For Each obj In OpSysSet obj.Reboot(8) Next Else WScript.Echo "To reboot you computer run me with parameter /Reboot" & vbLF & "Example: Reboot.Wsf /Reboot:YES" End IF </script> </job> **********
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Есть определённая потребность запустить внешний VBS скрипт из советника (например произвести перезагрузку терминала или компьютера)
Кто знает как это можно сделать?
Заранее благодарю за помощь!