Как найти окно с индикатором?

 

На один график мне нужно установить один и тот же индикатор несколько раз. Если у него нет явных входных параметров (берёт из вне) я не могу сформировать для него уникальное короткое имя.

Как мне его уникально идентифицировать в пределах графика, что бы добавлять префикс для графических объектов?

Примечание - и что бы это не зависело от пользователя (внешний параметр к примеру)

 
GlobalVariableSet("hwnd" + WindowHandle(Symbol(), Period()) + "_" + WindowsTotal(), 0);
 
hrenfx:

Предположим уже установлено 3 копии.

Я удаляю средний и добавляю ещё один....

Кроме того для может быть открыто несколько Symbol(), Period()

 
AlexSTAL:
Если у него нет явных входных параметров (берёт из вне) я не могу сформировать для него уникальное короткое имя.

Ничего не мешает менять короткое имя по аналогии сверху.

 

Кроме того для может быть открыто несколько Symbol(), Period()


MT4 все равно так выдаст хэндл графика, на котором запущен индикатор.
 

Подключаем творческую извилину:

string Name = "hwnd" + WindowHandle(Symbol(), Period()) + "Count";

if (!GlobalVariableCheck(Name))
  GlobalVariableSet(Name, WindowsTotal());

int WT = GlobalVariableGet(Name);

GlobalVariableSet("hwnd" + WindowHandle(Symbol(), Period()) + "_" + WT, 0);
GlobalVariableSet(Name, WT + 1); 
 
hrenfx:

Ничего не мешает менять короткое имя по аналогии сверху.

Мешает вот это: Предположим уже установлено 3 копии. Я удаляю средний и добавляю ещё один....


hrenfx:

MT4 все равно так выдаст хэндл графика, на котором запущен индикатор.

А если он везде запущен? Не вариант....


Короче наверное самый простой способ будет присваивать дополнительно порядковый номер короткому имени, определяемый с помощью банального перебора (если не найдено окно, то номер наш), верно?

 
hrenfx:

Подключаем творческую извилину:


Глобальные переменные можно отредактировать, удалить и т.д.
 
AlexSTAL:
А если он везде запущен? Не вариант....
Так это дерьмо должно быть вставлено в инициализацию самого индикатора.
 
AlexSTAL:
Глобальные переменные можно отредактировать, удалить и т.д.
В жизни дохрена приколов бывает. Можно ничего не делать - тоже вариант.
 

AlexSTAL:

Короче наверное самый простой способ будет присваивать дополнительно порядковый номер короткому имени, определяемый с помощью банального перебора (если не найдено окно, то номер наш), верно?

да. можно еще TimeLocal или GetTickCount
 
hrenfx:
В жизни дохрена приколов бывает. Можно ничего не делать - тоже вариант.

Просто есть более безопасные способы, вот и всё....

спасибо за участие

sergeev:
да. можно еще TimeLocal или GetTickCount

Спасибо


тема закрыта

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