Хочу нажать кнопку "Советники" из советника.

 
sanyooooook:
Знаю тема мусолилась, но нарыл только для одного советника а мне нужно все разом )

Так надо же уточнять - для какого советника и какую кнопку. Хотя можно все разом. Может просто терминал с советниками вовремя запустить надо. Так для этого никаких кнопок не надо. И даже для терминалов кнопок не надо. Лишь бы комп выл включен, а он сам может терминалы вовремя запустить
 
В терминале есть кнопка советники, вот хотелось бы что бы советник сам мог её нажимать.
 
То есть "выключать себя из розетки"? ...Советник "застрелился"...Представляю...
 

А как понимать эту фразу: "нарыл только для одного советника, а мне нужно все разом" ? Кнопка ведь всего одна. И она отключает все советники.

 

https://ru.wikipedia.org/wiki/PowerPro

в частности "Эмуляция нажатий клавиш и перемещений указателя мыши и щелчков кнопок мыши" - ясно дело прога "сторонняя"... если "внутренние" не найдутся... или как пример "что искать"...

 
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
  {
//----
   ExpertEnabled(false);
//----
   return(0);
  }
//+------------------------------------------------------------------+
void ExpertEnabled(bool Switch) // TRUE - включить эксперт, FALSE - отключить эксперт.
 {
  int HandlWindow = WindowHandle(Symbol(), Period()); // Системный дескриптор окна.
  int HandlMT4;        // Системный дескриптор окна МТ4.
  int HandlToolbar;    // Системный дескриптор окна инструментов.
  // Массвы.
  int    ArIntTemp[1]; // Временный массив.
  //----
  if (Switch == true) // Если требуется разрешить работу эксперта.
   {
    if (!IsExpertEnabled()) // Разрешаем работу экспертов, если она была запрещена.
     {
      HandlMT4 = GetAncestor(HandlWindow, 2);   
      HandlToolbar = GetDlgItem(HandlMT4, 0x63);
      ArIntTemp[0] = HandlToolbar;
      SendMessageA(HandlMT4, WM_COMMAND, 33020, ArIntTemp);
     }
   }
  else // Если требуется запретить работу эксперта.
   {
    if (IsExpertEnabled()) // Разрешаем работу экспертов, если она была запрещена.
     {
      HandlMT4 = GetAncestor(HandlWindow, 2);   
      HandlToolbar = GetDlgItem(HandlMT4, 0x63);
      ArIntTemp[0] = HandlToolbar;
      SendMessageA(HandlMT4, WM_COMMAND, 33020, ArIntTemp);
     }
   }
 }
 
Ещё раз напомню про библиотеку :-)) И тогда выше опубликованный код превратиться в пару строк.
 
Zhunko:
Ещё раз напомню про библиотеку :-)) И тогда выше опубликованный код превратиться в пару строк.

в данной ситуации вышеопубликованный код представляет больше ценности чем закрытая библиотека.

 

FAQ, а зачем там массив ArIntTemp? Оно и без него прекрасно работает. Просто указываешь 0 в качестве второго параметра и всё.

 
Я не разбирался - нашел код и преложил, а сам я пользуюсь таки библою Вадима (Zhunko) :)