Исполнить скрипт по команде извне - страница 2

 
Пошлите сообщение окну графика на котором установлен зацикленный скрипт (советник), и пускай этот скрипт (советник) его зачитает и исполнит.
 

Вот это хорошая идея

Как сделать окно активным?

 
Eugene1:

Как сделать окно активным?

SetForegroundWindow(MainScreen) (MainScreen - хендл основного окна терминала)

Но я пользуюсь другим способом: подключение к потоку ввода окна.

Код следующий:

var ThID,CurThID:dWord;
    keys:TKeyboardState;
    result1:longbool;
    

  ThId:=GetWindowThreadProcessId(MainScreen); 	//получение ID потока основного окна терминала
  CurThId:=GetWindowThreadProcessId(Handle);  	//получение ID потока нашей программы
  result1:=AttachThreadInput(CurThId,ThId,true); 	//подключение к потоку ввода терминала
  GetKeyboardState(keys);   			//запоминаем состояние клавиш
  keys[vk_control]:=$FF;    			// устанавливаем нажатое состояние Ctrl
  SetKeyboardState(keys);   			// устанавливаем нажатое состояние Ctrl
  sleep(20); 
  PostMessage(MainScreen,wm_keydown,ord('1'),0); 	//
  sleep(20);                                    		// нажимаем кнопку "1"
  PostMessage(MainScreen,wm_keyup,ord('1'),0);   	// 
  sleep(20);
  SetKeyboardState(keys);     			//восстанавливаем состояние клавиш
  sleep(20);

  AttachThreadInput(CurThId,ThId,false);  		//отключаемся от потока ввода терминала
 

Ещё раз напомню про библиотеку. :-)))

С её помощью можно управлять МТ4 удалённо. Но для этого нужна регистрация.

Причина обращения: