Нажатие кнопки из кода

Программирование прибыли: от азов к секретам мастерства. Читайте, спрашивайте, делитесь опытом.
Бонус за сообщение 0.5$
Ответственный Модератор - Haos

Нажатие кнопки из кода

Сообщение lisa » 06 июл 2019, 08:44

Есть индикатор, который вызывает на график, другой индикатор.
Все нормально работает, индикатор вызывается.
Но при вызове вызываемого индикатора, открывается окно настроек, и чтобы индикатор появился, нужно нажать кнопку "ОК"

Помогите, если кто знает, как из кода нажать на кнопку "ОК", средствами user32.dll,
чтобы вызываемый индикатор появлялся без ручных нажатий.

Безымянный.png


Сам код
Код: выделить все
#import "user32.dll"
   int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="Abc";

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red

double Buf[];

int init(){
  IndicatorBuffers(1);
  SetIndexBuffer(0,Buf);SetIndexStyle(0,DRAW_LINE);SetIndexLabel(0,NULL);
return(0);}

int start(){
  for(int i=Bars-IndicatorCounted()-1;i>=0;i--){
    Buf[i]=iRSI(NULL,0,2,PRICE_CLOSE,i);
  }
 
 
   char buf[];
   StringToCharArray("MetaTrader4_Internal_Message",buf);
   int MT4InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   SendMessageA(WindowHandle(Symbol(),Period()),MT4InternalMsg, 15, buf);
   
return(0);}
Вложения
Тест.mq4
(1.57 KB) Скачиваний: 81
Аватар пользователя
lisa
 
Сообщений: 77
Зарегистрирован: 05 ноя 2014, 09:37
Средств на руках: 4.50 Доллар
Группа: Базовая
Благодарил (а): 54 раз.
Поблагодарили: 3 раз.

Нажатие кнопки из кода

Сообщение lisa » 06 июл 2019, 08:52

Есть в сити вот такое описание решения проблемы,
но у меня что то не получилось.

Описание:
"""
Победил это так:

PostMessageA(hwnd,MT4InternalMsg,14,buf);//Запуск советника
Sleep(30);
hwnd=FindWindowW(NULL,"Expert - <Имя советника>");
PostMessageA(hwnd,WM_KEYDOWN,VK_ENTER,0); //Нажатие ОК в окне свойств советника

Пришлось SendMessageA заменить на PostMessageA, а то FindWindowW возвращала ноль. Кстати без Sleep не работает.
"""
Аватар пользователя
lisa
 
Сообщений: 77
Зарегистрирован: 05 ноя 2014, 09:37
Средств на руках: 4.50 Доллар
Группа: Базовая
Благодарил (а): 54 раз.
Поблагодарили: 3 раз.

Нажатие кнопки из кода

Сообщение Haos » 06 июл 2019, 17:44

Шаблон сделайте и не нужно будет ни первый, ни второй индикатор вызывать. Любое решение задачи другими средствами может быть осуществлено и в результате проще чем кажется. "Нажимать" же кнопку средствами ОС это... извините, через одно место к звездам. :-) Тем более сам-то код Вы куда запихивать собрались? Советник создавать или в первый индикатор? :hi_hi_hi:
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.

Нажатие кнопки из кода

Сообщение lisa » 06 июл 2019, 19:05

Сам код будет в первом индикаторе, вернее он и выложен в первом посте.
Вариант с шаблоном мне не подходит, нужно чтобы второй индикатор вызывался именно из кода первого индикатора, и без сохранения всех индикаторов на графике в шаблон.

Да и индикатор уже вызывается, просто чтобы не закрывать окно настроек в ручную, нужен автоклик по кнопке.
Насколько я понимаю, там кода 2-3 строки добавить.
Просто у меня что то не получилось, потому как не особо в этом разбираюсь.
Аватар пользователя
lisa
 
Сообщений: 77
Зарегистрирован: 05 ноя 2014, 09:37
Средств на руках: 4.50 Доллар
Группа: Базовая
Благодарил (а): 54 раз.
Поблагодарили: 3 раз.

Нажатие кнопки из кода

Сообщение Haos » 14 июл 2019, 09:46

Кстати, тема по программному запуску кнопки уже имеется в разделе Программное управление кнопкой Авто-Торговля.
Аватар пользователя
Haos
Специалист MQL
 
Сообщений: 24699
Зарегистрирован: 29 мар 2014, 16:07
Средств на руках: 193.70 Доллар
Группа: Главные модераторы
Благодарил (а): 3379 раз.
Поблагодарили: 8200 раз.


Вернуться в MQL – теория и практика

Кто сейчас на форуме?

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 73

Права доступа к форуму

Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения