Автор#1

В данной теме будет в дальнейшем располагаться программа для автозапуска терминалов на VPS. Предварительную идею я уже "срисовал" у одной программы от VPS провайдера, с подачи форумчанина IsNull

Мой список to-do выглядит для начала так:
- способность автоматически загружаться терминалам или другим программам после загрузки ОС. Выбор пока падает на меню автозагрузки через ярлыки или в реестре.
- функция автологина для выбранной учетной записи.
- работа из-под ограниченной учетной записи в случае отсутствия прав администратора. По логике должно хватать прав опытного пользователя, надо проверить
- сохранение в список путей до всех терминалов, добавленных пользователем. Список хранить локально в папке запуска если есть права или, как того требуют руководства майкрософт, в профиле пользователя.
- функция автоматического поиска путей до всех терминалов находящихся на текущем диске, откуда запущена программа
- возможность работы только одной копии программы. Под вопросом для multi-user систем и доступе через RDP. Нужны будут тесты.
- отправка уведомлений email под вопросом как ненадежный канал передачи данных, нужно придумать что-то иное.

Обновление возможных идей:
- возможность добавлять файл в список через drag-n-drop
- реакция на событие "завершение работы ОС"
- показ текущей занятой памяти

Предлагаю всем желающим высказаться что должно и чего не должно быть в такой программе. Я же попробую такую программу создать.

Изменено 12 июля, 2017 пользователем Pavel888

#2

Отличная идея! Предлагаю также свой вариант очень простого автозапуска средствами самой системы с помощью командной строки Windows.

1. Создается общая папка, в которой в подпапках лежат терминалы. В моем случае эта папка находится по адресу: C:\Users\Administrator\OneDrive\Forex Server\. (Как вы догадались, эта папка синхронизируется также с OneDrive).

2. В каждой подпапке с терминалом создаются два файла start.cmd и start.ini для запуска терминала в режиме portable:

start.cmd


start /d "%~dp0" terminal.exe start.ini /portable


start.ini

Login=ваш логин
Password=ваш пароль
Server=ваш торговый сервер
EnableDDE=true
EnableNews=false


3. В меню Автозагрузка помещается скрипт start_mt4.cmd:

start_mt4.cmd

for /f "delims=|" %%a in ('dir /B /S "C:\Users\Administrator\OneDrive\Forex Server\start.cmd"') do "%%a"


Вот и вся магия. Во время загрузки сервер запускает скрипт start_mt4.cmd, который проверяет все подпапки в каталоге C:\Users\Administrator\OneDrive\Forex Server\ на наличие файла start.cmd и запускает его. Таким образом будут запущены все терминалы, содержащие данные для запуска в режиме portable.

Изменено 11 апреля, 2017 пользователем ram108

#3

Предлагаю всем желающим высказаться что должно и чего не должно быть в такой программе. Я же попробую такую программу создать.


предлагаю добавить опцию: между запусками терминалами использовать отсрочку, к примеру на 5-30сек дабы исключить залипания и т.д.
#4

1. Мне кажется, надо предусмотреть возможность очерёдности запуска МТ4. Чтобы они все сразу одномоментно не грузили ВПС.
2. В текущих билдах до сих пор присутствует баг метаквотов. Они уже несколько месяцев его не устраняют. Суть: при смене (загрузке) профиля иногда с графика слетает ЕА. Та же проблема возникает при перезапуске МТ4, когда он загружает профиль.

#6

Крутая и нужная штука получается ;) Есть одна хотелка небольшая: реально ли реализовать мониторинг ресурсов, потребляемых каждым из терминалов?

#7

+ Автодетект запускаемых файлов. Наверное, достаточно сделать только для папок с терминалами. Чтобы юзер только указывал папку с терминалом, а terminal.exe добавлялся в автозапуск автоматом.

+ Возможность указать ключи к запускаемому файлу

#8

Программа конечно нужная, особенно когда не один терминал:)
может, события о перезагрузке, закрытиии теминала, удачного/неудачного запуска выводить куда-нибудь во внешний мессенджер, типа вотсапа/телеграма?

ну и встроенный тетрис/арканоид, само собой))

#9

Отличный гайд по автозапуску здесь, надо зарегиться, чтобы картинки видеть:

http://www.fx4u.ru/topic/19594-%D0%BA%D0%B0%D0%BA-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B8%D1%82%D1%8C-vps-2012/

#10

А кто сможет подсказать, как реализовать такую вещь:
1) Если загрузка ОЗУ достигла 95%, то пункт 2)
2) Запускаем cmd файл, где прописано:
Taskkill /F /IM terminal.exe
exit
3) Ждём минут 5, затем запускаем cmd файл, где прописано:
ping localhost -n 10
start "1" "C:\Program Files\MetaTrader1\terminal.exe"
start "2" "C:\Program Files\MetaTrader2\terminal.exe"
exit

Изменено 17 мая, 2017 пользователем Seeker

#11

Пока разработка программы автостарта идет полным ходом, выкладываю обновленный скрипт автозагрузки терминалов средствами командной строки Windows.

ЧТО НОВОГО:
* Логирование перезагрузок сервера в файл на рабочий стол
* Пауза между загрузками терминалов 5 сек

Подробная инструкция по установке скрипта в посте #1

1. Файл start_mt4.cmd поместить в "Автозагрузку". Отредактируйте путь к папке с терминалами dir_mt4 (по умолчанию C:\Users\Administrator\Dropbox).

Спойлер


start_mt4.cmd


@echo off

REM ==== Settings to edit =======================================

set dir_mt4=C:\Users\Administrator\Dropbox
set dir_log=C:\Users\Administrator\Desktop

REM ==== How to use =============================================

REM 1. Edit "Settings" above
REM 2. Put the script to Windows "Autostart" folder:
REM C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp

REM ==== Autostart ==============================================

echo %DATE% %TIME% >> %dir_log%\restart.log.txt

for /f "delims=|" %%a in ('dir /B /S "%dir_mt4%\start.cmd"') do @(
"%%a"
timeout /t 5 /nobreak > NUL
)



2. Файлы start.cmd и start.ini поместить в каждую папку с терминалом для запуска в режиме Portable. Укажите логин, пароль и сервер торгового счета в файле start.ini
Спойлер


start.cmd


start /min /d "%~dp0" terminal.exe start.ini /portable


start.ini

Login=ваш торговый счет
Password=ваш торговый пароль
Server=ваш торговый сервер
EnableDDE=true
EnableNews=false



3. Чтобы сервер при перезагрузке автоматически входил в учетную запись пользователя Windows, используйте программу autologon.exe, которая запускается один раз для указания логина и пароля Windows. Если вы поменяете пароль пользователя, не забудьте заново запустить autologon.exe и указать новый пароль.

Все необходимые файлы вы можете найти в приложении к этому посту.

autologon.zip89 скач.
autostart_mt4.zip81 скач.

Изменено 13 июня, 2017 пользователем ram108

#12

То ли лыжи не едут, то ли сказываются наступающие праздники. Уважаемый ram108, подскажите, при указании пути к папке с терминалами в файле start_mt4.cmd редактируем только строку set dir_mt4=C:\Users\Administrator\Dropbox , или и строку for /f "delims=|" %%a in ('dir /B /S %dir_mt4%\start.cmd') do (
%%a тоже?
И еще, как удалить из кода функцию логирования перезагрузок сервера в файл на рабочий стол.
А так примочка классная, спасибо.

#13

редактируем только строку set dir_mt4=C:\Users\Administrator\Dropbox


Да, редактируем только эту строку. Кроме нее ничего редактировать не нужно.


как удалить из кода функцию логирования перезагрузок сервера в файл на рабочий стол.


Удалить строку
echo %DATE% %TIME% >> %dir_log%\restart.log.txt

#14

Странная тема. У меня на впс это забота самого сервера впс.
_http://my.forex-box.com/knowledgebase.php?action=displayarticle&id=11

#15

Странная тема. У меня на впс это забота самого сервера впс.


Не все используют Forex Box и в этом ничего странного нет. На вашем же компьютере, когда вы его перезагружаете, терминалы автоматом не стартуют? Вот и у многих точно также, поэтому существует эта тема.
#16

Было бы архиполезно, если бы прога умела отслеживать статусы теремов и оповещать об их изменениях

#17

Вот такая хрень нашлась :) https://www.fxblue.com/appstore/7/mt4-auto-restart

#18
Цитата

start.ini

Login=ваш торговый счет
Password=ваш торговый пароль
Server=ваш торговый сервер
EnableDDE=true
EnableNews=false

Хранить эти данные на сервере большая ошибка!!! Не советую...

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025