Скачать MetaTrader 5

Как программно деинициализировать эксперт?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ilya
208
Ilya  

Здравствуйте! Не подскажете, как программно деинициализировать эксперт? простой вызов деинит() не помогает...

спасибо)

Vadim Zhunko
5226
Vadim Zhunko  

Вот Ильнур, как-то помог:

// Функция включения/отключения эксперта.
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);
     }
   }
 }

Только для этой функции нужна системная библиотека user32.dll. Или заголовочный файл от неё.

Эта функция двигает кнопку включения (разрешения) экспертов.

Виктор
Модератор
6559
Виктор  
Zhunko >>:

..Только для этой функции нужна системная библиотека user32.dll...

Уж прям сразу и тяжелую артиллерию подключать! Может автору достаточно ввести в код переменную, запрещающую торговлю, и все дела.

Комбинатор
16454
Комбинатор  
granit77 >>:

Уж прям сразу и тяжелую артиллерию подключать! Может автору достаточно ввести в код переменную, запрещающую торговлю, и все дела.

Деление на ноль :) .

Ilya
208
Ilya  

мммм, а я хотел чтобы он деинициализивался, то есть совсем убирался, то есть вот прямо совсем)

например, нет лицензии к примеру - все, деициализация, удаление эксперта с графика и все такое

есть такие варианты?

Vadim Zhunko
5226
Vadim Zhunko  
Можно окно закрывать с экспертом. Это проще, чем искать, как его удалить. Хотя, удалить тоже можно...
Александр
1056
Александр  
#include <WinUser32.mqh>
//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
void start() {
   int hwnd=WindowHandle (Symbol(), Period());
//----------------------
   hwnd=GetAncestor(hwnd,2);
   PostMessageA (hwnd,WM_COMMAND,33050,0);
   return;
}
//+------------------------------------------------------------------+
Заголовочный файл можно взять здесь, спасибо Zhunko, хороший сделал файл.
Виктор
Модератор
6559
Виктор  
Zhunko >>:
Можно окно закрывать с экспертом. Это проще, чем искать, как его удалить. Хотя, удалить тоже можно...

Можно практически все... Но прежде, чем искать способ защиты, неплохо бы определится что защищать, и стоит ли овчинка выделки :))

pansa
582
pansa  

Hallo,zhunko!

Function "expert ON-OFF" work not!

sorry

pansa

Vadim Zhunko
5226
Vadim Zhunko  
pansa:

Hallo,zhunko!

Function "expert ON-OFF" work not!

sorry

pansa

Zhunko 20.05.2009 11:29

Вот Ильнур, как-то помог:
Только для этой функции нужна системная библиотека user32.dll. Или заголовочный файл от неё.

Only needed for this function system library user32.dll. Or header file from it.

Talex 21.05.2009 11:36
#include <WinUser32.mqh>

Заголовочный файл можно взять здесь, спасибо Zhunko, хороший сделал файл.

The header file can be found here, thank you Zhunko, did a good file.

pansa
582
pansa  

Hello,Zhunko!

That function kan not be compild!

You have no one sample were that function work!

very sorry!

pansa

123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий