WindowHandle()

 

Привет всем!

Функция WindowHandle(Symbol(),Period()) в тестере возвращает 0,

хотя окно в самом терминале точно открыто (даже несколько) и тестирование производится на том же инструменте и периоде.

В хелпе об этом ничего.

Незадокументированная фича? ;)

 

https://www.mql5.com/ru/articles/1512

Особенности работы тестера стратегий на истории

  • Некоторые функции отрабатываются/пропускаются без вывода

    Это Sleep(), Alert(), SendMail(), SpeechText(), PlaySound(), MessageBox(), WindowFind(), WindowHandle(), WindowIsVisible()

 

Понятно, спасибо!

Но подскажите тогда как из тестера получить дескриптор окна терминала, pls.

 
mt4trade:

Понятно, спасибо!

Но подскажите тогда как из тестера получить дескриптор окна терминала, pls.


Средствами MQL4 - никак.

При помощи Win API.

 
stringo:

Средствами MQL4 - никак.

При помощи Win API.

Ну это и не из тестера приходится использовать Win API.

Но вне тестера это хотя бы GetAncestor(hWnd,...) благодаря WindowHandle(...).

Что легче, чем искать по FindWindowW(...). Ведь наименование окна "плавает", а нужна однозначность.

Есть еще какие-то способы точно "найти себя" (получить дескриптор окна терминала) из тестера (и вообще)?

Естественно с помощью Win API.