Скачать MetaTrader 5

Как узнать имя действующего эксперта с помощью функций WinApi?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ваш брокер не поддерживает мобильные MetaTrader 5? Попроси приобрести их!
foxmag
540
foxmag 2010.11.14 02:50 

Как известно, в MQL4 предусмотрена функция WindowExpertName() для определения имени действующего в активном окне эксперта.

Как определить имя эксперта подобно этой функции средствами WinApi? Например, с помощью SendMessage.

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

Dmitry Fedoseev
42905
Dmitry Fedoseev 2010.11.14 02:58  
dokpiknik:

Как известно, в MQL4 предусмотрена функция WindowExpertName() для определения имени действующего в активном окне эксперта.

Вовсе нет, прочитайте внимательней описание функции в справке. Функция возврщает имя эксперта, скрипта, индикатора из которого она вызвана.

Dmitry Fedoseev
42905
Dmitry Fedoseev 2010.11.14 03:05  
dokpiknik, извините за нескромный вопрос, с чего это вы вдруг в девочку превартились?
foxmag
540
foxmag 2010.11.14 03:07  
Integer:

Вовсе нет, прочитайте внимательней описание функции в справке. Функция возврщает имя эксперта, скрипта, индикатора из которого она вызвана.


Понятно. Имелось ввиду, что вызов функции WindowExpertName() осуществлялся из самого эксперта.

А как то же самое сделать с помощью функций WinApi?

Dmitry Fedoseev
42905
Dmitry Fedoseev 2010.11.14 03:09  
dokpiknik:


Понятно. Имелось ввиду, что вызов функции WindowExpertName() осуществлялся из саиого эксперта.

А как то же самое сделать с помощью функций WinApi?


Откуда вызывается эта функция WinApi? Если из самого советника, то можно пользоваться WindowExpertName(), если из DLL вызываемой из советника, то ей можно передать значение WindowExpertName(). Скорее всего какая-то совсем левая программа. Не знаю, можно попробовать в советнике сделать WindowSetText() SetWindowText(), а программе найти активное окно терминала и посмотреть текст окна.

foxmag
540
foxmag 2010.11.14 03:09  
Integer:
dokpiknik, извините за нескромный вопрос, с чего это вы вдруг в девочку превартились?

Всё просто, я использую готовый ник мужа. А сам он охладел к этим делам.
foxmag
540
foxmag 2010.11.14 03:19  
Integer:

Откуда вызывается эта функция WinApi? Если из самого советника, то можно пользоваться WindowExpertName(), если из DLL вызываемой из советника, то ей можно передать значение WindowExpertName(). Скорее всего какая-то совсем левая программа. Не знаю, можно попробовать в советнике сделать WindowSetText(), а программе найти активное окно терминала и посмотреть текст окна.

Что это за функция WindowSetText? Что-то мне не удаётся её найти... А вызов должен быть из dll. Ну, так получается. Может быть, есть что-нибудь типа Post/SendMessageA(hwnd,WM_COMMAND,33...,0)?
Dmitry Fedoseev
42905
Dmitry Fedoseev 2010.11.14 03:27  
dokpiknik:

Что это за функция WindowSetText? Что-то мне не удаётся её найти... А вызов должен быть из dll. Ну, так получается. Может быть, есть что-нибудь типа PostMessageA(hwnd,WM_COMMAND,33...,0)?

Уже исправил - SetWindowText(). Вызов из dll, а dll откуда вызывается?
foxmag
540
foxmag 2010.11.14 03:33  
Integer:

Уже исправил - SetWindowText(). Вызов из dll, а dll откуда вызывается?

GetWindowText() даёт только заголовок окна, к сожалению, а имя советника находится где-то внутри.

А вызывается dll из самого эксперта, но передавать его оттуда в dll в моей задаче нет смысла, т.к. используется этот фрагмент для тестирования правильности имени.

Dmitry Fedoseev
42905
Dmitry Fedoseev 2010.11.14 03:36  
dokpiknik:

SetWindowText() даёт только заголовок окна, к сожалению, а имя советника находится где-то внутри.

А вызывается dll из самого эксперта, но передавать его оттуда в dll в моей задаче нет смысла, т.к. используется этот фрагмент для тестирования правильности имени.

 SetWindowText() ничего не дает, она устанавливает. Установить из эксперта, а потом считать функцией GetWindowText(), но тоже нет смысла при поставленой задаче.

foxmag
540
foxmag 2010.11.14 03:49  

https://www.mql5.com/ru/forum/110207

Здесь есть перечень полезных функций, но, к сожалению нет того, что требуется... Между тем, большое спасибо Вам, Integer, за дискуссию.

Может быть, всё-таки это решаемая задача...? Помогите, пожалуйста...

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