Как в скрипте активировать окно с нужным символом? - страница 2

 
ps-n:

Спасибо огромное, заработало! 

Столько мучений из-за трех строчек

      long  currWindowsHandle=ChartGetInteger(ChartFirst(),CHART_WINDOW_HANDLE,0);

      long  hdlcurrWindowsHandle=GetParent(currWindowsHandle);

      ShowWindow(hdlcurrWindowsHandle,3);   

 Почему то я считал что ChartFirst() ChartNext() ChartID() как раз и должны возвращать это хендл, как и WindowHandle(), а они возвращают какой-то идентификатор

Осталось только понять что делает GetParent() это типа еще какое-то окно выше(родительское?)  тогда на что указывает currWindowsHandle? Сори в вин api и в иерархие виндовых окон не силен.

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

Еще раз спасибо, сам бы не допер.  

Попробую объяснить в виде картинки:

parent 

 
barabashkakvn:

Попробую объяснить в виде картинки:

 

( ChartID, ChartFirst)  и  ChartGetInteger(ChartFirst(),CHART_WINDOW_HANDLE,0)  разные значения

---- 

ChartID() -> 130372548819524840

ChartFirst()-> 130372548819524840 

ChartGetInteger(ChartFirst(),CHART_WINDOW_HANDLE,0) -> 3277694

GetParent(currWindowsHandle) -> 1443824



 
ps-n:

( ChartID, ChartFirst)  и  ChartGetInteger(ChartFirst(),CHART_WINDOW_HANDLE,0)  разные значения

---- 

ChartID() -> 130372548819524840

ChartFirst()-> 130372548819524840 

ChartGetInteger(ChartFirst(),CHART_WINDOW_HANDLE,0) -> 3277694

GetParent(currWindowsHandle) -> 1443824



Картинкой я показал какие функции применимы к каким окнам.
ChartID(), ChartFirst(), ChartGetInteger(...CHART_WINDOW_HANDLE...) применяются к дочернему окну - графику.

GetParent() применяется к родительскому окну графика.
 
ps-n:

.

.

.

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

.

.

.

Странно. У меня скрипт работает - раскрывает поочереди все графики.
А Вы скрипту вызов .dll разрешили?
 
barabashkakvn:
Странно. У меня скрипт работает - раскрывает поочереди все графики.
А Вы скрипту вызов .dll разрешили?

Я не стал разбираться, взял нужные строчки кода и вставил их себе в скрипт.

Не стал заморачиваться с выводом инструментов в углу графика, сделал переключение окон где открыты позы, по клавише "Q", по цепочке, а где есть отложки по клавише 'W"

Был бы признателен, если бы еще подсказали, как отправить событие в терминал (нажатие клавиш) , хочу заменить Ctrl-T на просто T, надоело постоянно за Ctrl тянуться или мышкой целиться в соответствующую иконку.

EventChartCustom я так понял генерирует события только для экспертов на графике.

 
Уже не актуально, сам разобрался.
 
ps-n:
Уже не актуально, сам разобрался.
А поделиться решением?
 
barabashkakvn:
А поделиться решением?

#include <WinUser32.mqh>

 

void OnChartEvent(const int id,          // идентификатор события  
                  const long& lparam,       // параметр события типа long
                  const double& dparam,  // параметр события типа double
                  const string& sparam    // параметр события типа string
                  )
{
   if(id == CHARTEVENT_KEYDOWN || id - 1000 == CHARTEVENT_KEYDOWN)
   {
      if (lparam == 84) { keybd_event(17,0,0,0); keybd_event(84,0,0,0); keybd_event(84,0,2,0); keybd_event(17,0,2,0); return; }   // Нажали T -> Ctrl+T
   }
}
 
ps-n:
void OnChartEvent(const int id,          // идентификатор события  
                  const long& lparam,       // параметр события типа long
                  const double& dparam,  // параметр события типа double
                  const string& sparam    // параметр события типа string
                  )
{
   if(id == CHARTEVENT_KEYDOWN || id - 1000 == CHARTEVENT_KEYDOWN)
   {
      if (lparam == 84) { keybd_event(17,0,0,0); keybd_event(84,0,0,0); keybd_event(84,0,2,0); keybd_event(17,0,2,0); return; }   // Нажали T -> Ctrl+T
   }
}
А что за функция:
keybd_event

? WinAPI?

P.S. Код вставляется с помощью кнопочки "SRC": Кнопка вставки кода

 
barabashkakvn:
А что за функция:

? WinAPI?

P.S. Код вставляется с помощью кнопочки "SRC": 

забыл вставить, потом отредактировал, добавил,

#include <WinUser32.mqh>

наверное первую версию сообщения смотрели 

 

. Код вставляется с помощью кнопочки "SRC": 

Нет, просто копирую 

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