Скачать MetaTrader 5

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

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

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

спасибо)

Vadim Zhunko
5227
Vadim Zhunko 2009.05.20 09:29  

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

// Функция включения/отключения эксперта.
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
Виктор 2009.05.20 12:56  
Zhunko >>:

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

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

Комбинатор
16011
Комбинатор 2009.05.20 13:20  
granit77 >>:

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

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

Ilya
208
Ilya 2009.05.21 08:27  

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

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

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

Vadim Zhunko
5227
Vadim Zhunko 2009.05.21 08:52  
Можно окно закрывать с экспертом. Это проще, чем искать, как его удалить. Хотя, удалить тоже можно...
Александр
1081
Александр 2009.05.21 09:36  
#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
Виктор 2009.05.21 09:36  
Zhunko >>:
Можно окно закрывать с экспертом. Это проще, чем искать, как его удалить. Хотя, удалить тоже можно...

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

pansa
582
pansa 2011.07.07 11:01  

Hallo,zhunko!

Function "expert ON-OFF" work not!

sorry

pansa

Vadim Zhunko
5227
Vadim Zhunko 2011.07.07 14:24  
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 2011.07.07 14:59  

Hello,Zhunko!

That function kan not be compild!

You have no one sample were that function work!

very sorry!

pansa

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